]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
purge: use sysfs to unmap rbd devices
authorGuillaume Abrioux <gabrioux@redhat.com>
Mon, 4 Nov 2019 14:59:39 +0000 (15:59 +0100)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Fri, 8 Nov 2019 14:06:11 +0000 (09:06 -0500)
in containerized context, using the binary provided in atomic os won't
work because it's an old version provided by ceph-common based on
10.2.5.
Using a container could be an idea but for large cluster with hundreds
of client nodes, that would require to pull the image of each of them
just to unmap the rbd devices.

Let's use the sysfs method in order to avoid any issue related to ceph
version that is shipped on the host.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1766064
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
infrastructure-playbooks/purge-docker-cluster.yml

index f4bd38540ec87afb08836721d1f7186abe73852d..4b0406ea28dd332caa81b1329327b7c1fc1ac01b 100644 (file)
     - name: ensure cephfs mountpoint are unmounted
       command: umount -a -t ceph
 
-    - name: ensure rbd devices are unmapped
-      command: rbdmap unmap-all
+    - name: find mapped rbd ids
+      find:
+        paths: /sys/bus/rbd/devices
+        file_type: any
+      register: rbd_mapped_ids
+
+    - name: use sysfs to unmap rbd devices
+      shell: "echo {{ item.path | basename }} > /sys/bus/rbd/remove_single_major"
+      with_items: "{{ rbd_mapped_ids.files }}"
 
     - name: unload ceph kernel modules
       modprobe: