]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
rolling_update: register container osd units
authorSébastien Han <seb@redhat.com>
Mon, 13 Aug 2018 13:59:25 +0000 (15:59 +0200)
committermergify[bot] <mergify[bot]@users.noreply.github.com>
Thu, 16 Aug 2018 14:09:47 +0000 (14:09 +0000)
Before running the upgrade, let's call systemd to collect unit names
instead of relaying on the device list. This is more accurate and fix
the osd_auto_discovery scenario too.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1613626
Signed-off-by: Sébastien Han <seb@redhat.com>
(cherry picked from commit dad10e8f3f67f1e0c6a14ef3e0b1f51f90d9d962)

infrastructure-playbooks/rolling_update.yml

index f01168a97cabebb6028e246e5d4a2ee9fd84dac7..63c254ef2ecfbe400da48786cd5ecdb26b8d7f26 100644 (file)
   become: True
 
   pre_tasks:
-    - name: get osd numbers
+    - name: get osd numbers - non container
       shell: "if [ -d /var/lib/ceph/osd ] ; then ls /var/lib/ceph/osd | sed 's/.*-//' ; fi"
       register: osd_ids
       changed_when: false
       when: not containerized_deployment
 
+    - name: get osd unit names - container
+      shell: systemctl list-units | grep -E "loaded * active" | grep -oE "ceph-osd@([0-9]{1,}|[a-z]+).service"
+      register: osd_names
+      changed_when: false
+      when: containerized_deployment
+
     - name: stop ceph osd
       systemd:
         name: ceph-osd@{{ item }}
 
     - name: restart containerized ceph osd
       systemd:
-        name: ceph-osd@{{ item | basename }}
+        name: "{{ item }}"
         state: restarted
         enabled: yes
         daemon_reload: yes
-      with_items: "{{ devices }}"
+      with_items: "{{ osd_names.stdout_lines }}"
       when:
         - containerized_deployment