--- # Defines deployment design and assigns role to server groups - hosts: - mons - agents - osds - mdss - rgws - nfss - restapis - rbdmirrors - clients - iscsigws - mgrs gather_facts: false become: True vars: delegate_facts_host: True pre_tasks: - name: gather facts setup: when: - not delegate_facts_host | bool or inventory_hostname in groups.get('clients', []) - name: gather and delegate facts setup: delegate_to: "{{ item }}" delegate_facts: True with_items: "{{ groups['all'] | difference(groups.get('clients', [])) }}" when: - delegate_facts_host | bool - name: check if it is atomic host stat: path: /run/ostree-booted register: stat_ostree tags: - always - name: set_fact is_atomic set_fact: is_atomic: '{{ stat_ostree.stat.exists }}' tags: - always roles: - { role: ceph-defaults, tags: [with_pkg, fetch_container_image], when: "(((containerized_deployment | bool) and not (is_atomic | bool) and not (inventory_hostname in groups.get('clients', [False]))) or ((inventory_hostname == groups.get('clients', [False])|first) and (containerized_deployment | bool) and not (is_atomic | bool)))" } - { role: ceph-docker-common, tags: [with_pkg, fetch_container_image], when: "(((containerized_deployment | bool) and not (is_atomic | bool) and not (inventory_hostname in groups.get('clients', [False]))) or ((inventory_hostname == groups.get('clients', [False])|first) and (containerized_deployment | bool) and not (is_atomic | bool)))" } post_tasks: - name: "pull {{ ceph_docker_image }} image" command: "docker pull {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}" changed_when: false when: "((is_atomic and (ceph_docker_dev_image is undefined or not ceph_docker_dev_image) and not (inventory_hostname in groups.get('clients', [False]))) or (is_atomic and ((ceph_docker_dev_image is undefined) or not (ceph_docker_dev_image)) and (inventory_hostname == groups.get('clients', [False])|first)))" - hosts: mons tasks: - name: set ceph monitor install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_mon: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: mons become: True gather_facts: false roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-mon serial: 1 # MUST be '1' WHEN DEPLOYING MONITORS ON DOCKER CONTAINERS - hosts: mons tasks: - name: set ceph monitor install 'Complete' run_once: true set_stats: data: installer_phase_ceph_mon: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: mgrs become: True gather_facts: false pre_tasks: - name: set ceph manager install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_mgr: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'], when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" } - { role: ceph-mgr, when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" } post_tasks: - name: set ceph manager install 'Complete' run_once: true set_stats: data: installer_phase_ceph_mgr: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: osds become: True gather_facts: false pre_tasks: - name: set ceph osd install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_osd: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-osd post_tasks: - name: set ceph osd install 'Complete' run_once: true set_stats: data: installer_phase_ceph_osd: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: mdss become: True gather_facts: false pre_tasks: - name: set ceph mds install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_mds: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-mds post_tasks: - name: set ceph mds install 'Complete' run_once: true set_stats: data: installer_phase_ceph_mds: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: rgws become: True gather_facts: false pre_tasks: - name: set ceph rgw install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_rgw: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-rgw post_tasks: - name: set ceph rgw install 'Complete' run_once: true set_stats: data: installer_phase_ceph_rgw: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: nfss become: True gather_facts: false pre_tasks: - name: set ceph nfs install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_nfs: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'], when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" } - { role: ceph-nfs, when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" } post_tasks: - name: set ceph nfs install 'Complete' run_once: true set_stats: data: installer_phase_ceph_nfs: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: rbdmirrors become: True gather_facts: false pre_tasks: - name: set ceph rbd mirror install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_rbdmirror: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-rbd-mirror post_tasks: - name: set ceph rbd mirror install 'Complete' run_once: true set_stats: data: installer_phase_ceph_rbdmirror: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: restapis become: True gather_facts: false pre_tasks: - name: set ceph rest api install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_restapi: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - ceph-docker-common - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-restapi post_tasks: - name: set ceph rest api install 'Complete' run_once: true set_stats: data: installer_phase_ceph_restapi: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - hosts: clients become: True gather_facts: false pre_tasks: - name: set ceph client install 'In Progress' run_once: true set_stats: data: installer_phase_ceph_client: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" roles: - { role: ceph-defaults, tags: ['ceph_update_config'] } - { role: ceph-docker-common, when: "inventory_hostname == groups.get('clients', []) | first" } - { role: ceph-config, tags: ['ceph_update_config'] } - ceph-client post_tasks: - name: set ceph client install 'Complete' run_once: true set_stats: data: installer_phase_ceph_client: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"