From: Dimitri Savineau Date: Tue, 26 Nov 2019 16:09:11 +0000 (-0500) Subject: ceph-osd: wait for all osd before crush rules X-Git-Tag: v6.0.0alpha1~204 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cf8c6a384999be8caedce1121dfd57ae114d5bb6;p=ceph-ansible.git ceph-osd: wait for all osd before crush rules When creating crush rules with device class parameter we need to be sure that all OSDs are up and running because the device class list is is populated with this information. This is now enable for all scenario not openstack_config only. Signed-off-by: Dimitri Savineau --- diff --git a/roles/ceph-osd/tasks/main.yml b/roles/ceph-osd/tasks/main.yml index 84df01483..b931a4ec7 100644 --- a/roles/ceph-osd/tasks/main.yml +++ b/roles/ceph-osd/tasks/main.yml @@ -51,6 +51,17 @@ - name: include_tasks start_osds.yml include_tasks: start_osds.yml +- name: wait for all osd to be up + command: "{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} -s -f json" + register: wait_for_all_osds_up + retries: "{{ nb_retry_wait_osd_up }}" + delay: "{{ delay_wait_osd_up }}" + changed_when: false + delegate_to: "{{ groups[mon_group_name][0] }}" + until: + - (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_osds"] | int > 0 + - (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_osds"] == (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_up_osds"] + - name: include crush_rules.yml include_tasks: crush_rules.yml when: hostvars[groups[mon_group_name][0]]['crush_rule_config'] | default(false) | bool diff --git a/roles/ceph-osd/tasks/openstack_config.yml b/roles/ceph-osd/tasks/openstack_config.yml index 796c3c533..b465210cb 100644 --- a/roles/ceph-osd/tasks/openstack_config.yml +++ b/roles/ceph-osd/tasks/openstack_config.yml @@ -1,15 +1,4 @@ --- -- name: wait for all osd to be up - command: "{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} -s -f json" - register: wait_for_all_osds_up - retries: "{{ nb_retry_wait_osd_up }}" - delay: "{{ delay_wait_osd_up }}" - changed_when: false - delegate_to: "{{ groups[mon_group_name][0] }}" - until: - - (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_osds"] | int > 0 - - (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_osds"] == (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_up_osds"] - - name: pool related tasks block: - name: list existing pool(s)