mirror of https://github.com/ceph/ceph-ansible.git
226 lines
5.6 KiB
YAML
226 lines
5.6 KiB
YAML
---
|
|
- include: ./checks/check_system.yml
|
|
|
|
- include: ./checks/check_mandatory_vars.yml
|
|
|
|
- include: ./checks/check_firewall.yml
|
|
|
|
- include: ./misc/system_tuning.yml
|
|
when: osd_group_name in group_names
|
|
|
|
- include: ./pre_requisites/prerequisite_ice.yml
|
|
when: ceph_stable_ice
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./pre_requisites/prerequisite_rh_storage_iso_install.yml
|
|
when:
|
|
ceph_stable_rh_storage and
|
|
ceph_stable_rh_storage_iso_install and
|
|
ansible_os_family == "RedHat"
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./pre_requisites/prerequisite_rh_storage_cdn_install.yml
|
|
when:
|
|
ceph_stable_rh_storage and
|
|
ceph_stable_rh_storage_cdn_install and
|
|
ansible_os_family == "RedHat"
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./installs/install_on_redhat.yml
|
|
when: ansible_os_family == 'RedHat'
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./installs/install_on_debian.yml
|
|
when:
|
|
ansible_os_family == 'Debian' and
|
|
not ceph_stable_rh_storage
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./installs/install_rh_storage_on_debian.yml
|
|
when:
|
|
ansible_os_family == 'Debian' and
|
|
ceph_stable_rh_storage
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./installs/install_rgw_on_redhat.yml
|
|
when:
|
|
ansible_os_family == 'RedHat' and
|
|
radosgw_frontend == 'apache' and
|
|
rgw_group_name in group_names
|
|
tags:
|
|
- package-install
|
|
|
|
- include: ./installs/install_rgw_on_debian.yml
|
|
when:
|
|
ansible_os_family == 'Debian' and
|
|
radosgw_frontend == 'apache' and
|
|
rgw_group_name in group_names
|
|
tags:
|
|
- package-install
|
|
|
|
- name: get ceph rhcs version
|
|
shell: rpm -q --qf "%{version}\n" ceph-common | cut -f1,2 -d '.'
|
|
changed_when: false
|
|
failed_when: false
|
|
register: rh_storage_version
|
|
when: ceph_stable_rh_storage
|
|
|
|
# NOTE (leseb): be careful with the following
|
|
# somehow the YAML syntax using "is_ceph_infernalis: {{"
|
|
# does NOT work, so we keep this syntax styling...
|
|
- set_fact:
|
|
is_ceph_infernalis={{ (ceph_stable and ceph_stable_release not in ceph_stable_releases) or (ceph_dev) or (ceph_stable_rh_storage and (rh_storage_version.stdout | version_compare('0.94', '>'))) }}
|
|
|
|
- set_fact:
|
|
is_ceph_infernalis=True
|
|
when:
|
|
ansible_os_family == 'Debian' and
|
|
ceph_stable_rh_storage
|
|
|
|
- set_fact:
|
|
dir_owner: ceph
|
|
dir_group: ceph
|
|
dir_mode: "0755"
|
|
when: is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
dir_owner: root
|
|
dir_group: root
|
|
dir_mode: "0755"
|
|
when: not is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
key_owner: root
|
|
key_group: root
|
|
key_mode: "0600"
|
|
when: not is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
key_owner: ceph
|
|
key_group: ceph
|
|
key_mode: "0600"
|
|
when: is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
activate_file_owner: ceph
|
|
activate_file_group: ceph
|
|
activate_file_mode: "0644"
|
|
when: is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
activate_file_owner: root
|
|
activate_file_group: root
|
|
activate_file_mode: "0644"
|
|
when: not is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
rbd_client_dir_owner: root
|
|
rbd_client_dir_group: root
|
|
rbd_client_dir_mode: "1777"
|
|
when: not is_ceph_infernalis
|
|
|
|
- set_fact:
|
|
rbd_client_dir_owner: ceph
|
|
rbd_client_dir_group: ceph
|
|
rbd_client_dir_mode: "0770"
|
|
when: is_ceph_infernalis
|
|
|
|
- name: check for a ceph socket
|
|
shell: "stat /var/run/ceph/*.asok > /dev/null 2>&1"
|
|
changed_when: false
|
|
failed_when: false
|
|
register: socket
|
|
|
|
- name: check for a rados gateway socket
|
|
shell: "stat {{ rbd_client_admin_socket_path }}*.asok > /dev/null 2>&1"
|
|
changed_when: false
|
|
failed_when: false
|
|
register: socketrgw
|
|
|
|
- name: create a local fetch directory if it does not exist
|
|
local_action: file path={{ fetch_directory }} state=directory
|
|
changed_when: false
|
|
become: false
|
|
run_once: true
|
|
when:
|
|
cephx or
|
|
generate_fsid
|
|
|
|
- name: generate cluster uuid
|
|
local_action: shell python -c 'import uuid; print str(uuid.uuid4())' | tee {{ fetch_directory }}/ceph_cluster_uuid.conf
|
|
creates="{{ fetch_directory }}/ceph_cluster_uuid.conf"
|
|
register: cluster_uuid
|
|
become: false
|
|
when: generate_fsid
|
|
|
|
- name: read cluster uuid if it already exists
|
|
local_action: command cat {{ fetch_directory }}/ceph_cluster_uuid.conf
|
|
removes="{{ fetch_directory }}/ceph_cluster_uuid.conf"
|
|
changed_when: false
|
|
register: cluster_uuid
|
|
become: false
|
|
when: generate_fsid
|
|
|
|
- name: create ceph conf directory
|
|
file:
|
|
path: /etc/ceph
|
|
state: directory
|
|
owner: "{{ dir_owner }}"
|
|
group: "{{ dir_group }}"
|
|
mode: "{{ dir_mode }}"
|
|
|
|
- name: generate ceph configuration file
|
|
action: config_template
|
|
args:
|
|
src: ceph.conf.j2
|
|
dest: /etc/ceph/{{ cluster }}.conf
|
|
owner: "{{ dir_owner }}"
|
|
group: "{{ dir_group }}"
|
|
mode: "{{ activate_file_mode }}"
|
|
config_overrides: "{{ ceph_conf_overrides }}"
|
|
config_type: ini
|
|
notify:
|
|
- restart ceph mons
|
|
- restart ceph mons on ubuntu
|
|
- restart ceph mons with systemd
|
|
- restart ceph osds
|
|
- restart ceph osds on ubuntu
|
|
- restart ceph osds with systemd
|
|
- restart ceph mdss
|
|
- restart ceph mdss on ubuntu
|
|
- restart ceph mdss with systemd
|
|
- restart ceph rgws
|
|
- restart ceph rgws on ubuntu
|
|
- restart ceph rgws on red hat
|
|
- restart ceph rgws with systemd
|
|
|
|
- name: create rbd client directory
|
|
file:
|
|
path: "{{ rbd_client_admin_socket_path }}"
|
|
state: directory
|
|
owner: "{{ rbd_client_dir_owner }}"
|
|
group: "{{ rbd_client_dir_group }}"
|
|
mode: "{{ rbd_client_dir_mode }}"
|
|
|
|
- name: configure cluster name
|
|
lineinfile:
|
|
dest: /etc/sysconfig/ceph
|
|
insertafter: EOF
|
|
line: "CLUSTER={{ cluster }}"
|
|
when:
|
|
ansible_os_family == "RedHat"
|
|
|
|
- name: configure cluster name
|
|
lineinfile:
|
|
dest: /etc/default/ceph/ceph
|
|
insertafter: EOF
|
|
line: "CLUSTER={{ cluster }}"
|
|
when:
|
|
ansible_os_family == "Debian"
|