From af0624150d22bd10581acb492b6e7bc3cd283a17 Mon Sep 17 00:00:00 2001 From: Teoman ONAY Date: Mon, 4 Jul 2022 11:54:41 +0200 Subject: [PATCH] Refresh /etc/ceph/osd json files content before zapping the disks 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 (cherry picked from commit 64e08f2c0bdea6f4c4ad5862dc8f350c6adbe2cd) --- infrastructure-playbooks/shrink-osd.yml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/infrastructure-playbooks/shrink-osd.yml b/infrastructure-playbooks/shrink-osd.yml index b4255f47c..8e739fafa 100644 --- a/infrastructure-playbooks/shrink-osd.yml +++ b/infrastructure-playbooks/shrink-osd.yml @@ -101,6 +101,11 @@ - "{{ 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 ceph_volume: cluster: "{{ cluster }}" @@ -109,14 +114,29 @@ CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}" CEPH_CONTAINER_BINARY: "{{ container_binary }}" 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 + ceph_volume_simple_scan: + cluster: "{{ cluster }}" + force: true + 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