]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Refresh /etc/ceph/osd json files content before zapping the disks
authorTeoman ONAY <tonay@redhat.com>
Mon, 4 Jul 2022 09:54:41 +0000 (11:54 +0200)
committerGuillaume Abrioux <gabrioux@redhat.com>
Mon, 11 Jul 2022 12:20:21 +0000 (14:20 +0200)
If the physical disk to device path mapping has changed since the
last ceph-volume simple scan (e.g. addition or removal of disks),
a wrong disk could be deleted.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2071035
Signed-off-by: Teoman ONAY <tonay@redhat.com>
(cherry picked from commit 64e08f2c0bdea6f4c4ad5862dc8f350c6adbe2cd)

infrastructure-playbooks/shrink-osd.yml

index 6d9bfae9db376fc81228c3712f10202d9fee6fb8..e1e05619d96eb69a5294bf0a608f8136a96b1e5c 100644 (file)
         - "{{ osd_hosts }}"
       when: hostvars[item.0]['ansible_facts']['hostname'] == item.1
 
+    - name: set_fact host_list
+      set_fact:
+        host_list: "{{ host_list | default([]) | union([item.0]) }}"
+      loop: "{{ _osd_hosts }}"
+
     - name: get ceph-volume lvm list data
       command: "{{ container_run_cmd }} lvm list --format json"
       changed_when: false
       register: _lvm_list_data
-      delegate_to: "{{ item.0 }}"
-      loop: "{{ _osd_hosts }}"
+      delegate_to: "{{ item }}"
+      loop: "{{ host_list }}"
 
     - name: set_fact _lvm_list
       set_fact:
         _lvm_list: "{{ _lvm_list | default({}) | combine(item.stdout | from_json) }}"
       with_items: "{{ _lvm_list_data.results }}"
 
+    - name: refresh /etc/ceph/osd files non containerized_deployment
+      command: ceph-volume simple scan --force
+      delegate_to: "{{ item }}"
+      loop: "{{ host_list }}"
+      when: not containerized_deployment | bool
+
+    - name: refresh /etc/ceph/osd files containerized_deployment
+      command: "{{ container_binary }} exec ceph-osd-{{ item.2 }} ceph-volume simple scan --force /var/lib/ceph/osd/{{ cluster }}-{{ item.2 }}"
+      changed_when: false
+      delegate_to: "{{ item.0 }}"
+      loop: "{{ _osd_hosts }}"
+      when: containerized_deployment | bool
+
     - name: find /etc/ceph/osd files
       find:
         paths: /etc/ceph/osd