]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
roles: ceph-defaults: Delegate cluster information task to monitor node
authorMarkos Chandras <mchandras@suse.de>
Tue, 14 Aug 2018 06:52:04 +0000 (09:52 +0300)
committerSébastien Han <seb@redhat.com>
Mon, 20 Aug 2018 09:37:45 +0000 (11:37 +0200)
Since commit f422efb1d6b56ce56a7d39a21736a471e4ed357 ("config: ensure
rgw section has the correct name") we observe the following failures in
new Ceph deployment with OpenStack-Ansible

fatal: [aio1_ceph-rgw_container-fc588f0a]: FAILED! => {"changed": false,
"cmd": "ceph --cluster ceph -s -f json", "msg": "[Errno 2] No such file
or directory"

This is because the task executes 'ceph' but at this point no package
installation has happened. Packages are normally installed in the
'ceph-common' role which runs after the 'ceph-defaults' one.

Since we are looking to obtain cluster information, the task should be
delegated to a monitor node similar to other tasks in that role

Signed-off-by: Markos Chandras <mchandras@suse.de>
roles/ceph-defaults/tasks/facts.yml

index 4701823443ec0802f8cf1073b0ab01303807050a..ee674278281e9e4ef20a51f189ee6f1cba5989c0 100644 (file)
 - block:
     - name: get current cluster status (if already running)
       command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} -s -f json"
+      changed_when: false
+      failed_when: false
+      check_mode: no
+      run_once: true
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      when:
+        - not rolling_update
+        - groups.get(mon_group_name, []) | length > 0
       register: ceph_current_status
 
     - name: set_fact ceph_current_status (convert to json)