mirror of https://github.com/ceph/ceph-ansible.git
purge_cluster: fix bug when building device list
there is some leftover on devices when purging osds because of a invalid device list construction. typical error: ``` changed: [osd3] => (item=/dev/sda sda1) => { "changed": true, "cmd": "# if the disk passed is a raw device AND the boot system disk\n if parted -s \"/dev/sda sda1\" print | grep -sq boot; then\n echo \"Looks like /dev/sda sda1 has a boot partition,\"\n echo \"if you want to delete specific partitions point to the partition instead of the raw device\"\n echo \"Do not use your system disk!\"\n exit 1\n fi\n echo sgdisk -Z \"/dev/sda sda1\"\n echo dd if=/dev/zero of=\"/dev/sda sda1\" bs=1M count=200\n echo udevadm settle --timeout=600", "delta": "0:00:00.015188", "end": "2018-05-16 12:41:40.408597", "item": "/dev/sda sda1", "rc": 0, "start": "2018-05-16 12:41:40.393409" } STDOUT: sgdisk -Z /dev/sda sda1 dd if=/dev/zero of=/dev/sda sda1 bs=1M count=200 udevadm settle --timeout=600 STDERR: Error: Could not stat device /dev/sda sda1 - No such file or directory. ``` the devices list in the task `resolve parent device` isn't built properly because the command used to resolve the parent device doesn't return the expected output eg: ``` changed: [osd3] => (item=/dev/sda1) => { "changed": true, "cmd": "echo /dev/$(lsblk -no pkname \"/dev/sda1\")", "delta": "0:00:00.013634", "end": "2018-05-16 12:41:09.068166", "item": "/dev/sda1", "rc": 0, "start": "2018-05-16 12:41:09.054532" } STDOUT: /dev/sda sda1 ``` For instance, it will result with a devices list like: `['/dev/sda sda1', '/dev/sdb', '/dev/sdc sdc1']` where we expect to have: `['/dev/sda', '/dev/sdb', '/dev/sdc']` Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1492242 Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>pull/2609/head
parent
d80a871a07
commit
9cad113e2f
|
@ -379,7 +379,7 @@
|
||||||
ceph_wal_partition_to_erase_path.stdout_lines }}"
|
ceph_wal_partition_to_erase_path.stdout_lines }}"
|
||||||
|
|
||||||
- name: resolve parent device
|
- name: resolve parent device
|
||||||
shell: echo /dev/$(lsblk -no pkname "{{ item }}")
|
command: lsblk --nodeps -no pkname "{{ item }}"
|
||||||
register: tmp_resolved_parent_device
|
register: tmp_resolved_parent_device
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ combined_devices_list }}"
|
- "{{ combined_devices_list }}"
|
||||||
|
@ -391,14 +391,14 @@
|
||||||
- name: zap ceph journal/block db/block wal partitions
|
- name: zap ceph journal/block db/block wal partitions
|
||||||
shell: |
|
shell: |
|
||||||
# if the disk passed is a raw device AND the boot system disk
|
# if the disk passed is a raw device AND the boot system disk
|
||||||
if parted -s "{{ item }}" print | grep -sq boot; then
|
if parted -s "/dev/{{ item }}" print | grep -sq boot; then
|
||||||
echo "Looks like {{ item }} has a boot partition,"
|
echo "Looks like /dev/{{ item }} has a boot partition,"
|
||||||
echo "if you want to delete specific partitions point to the partition instead of the raw device"
|
echo "if you want to delete specific partitions point to the partition instead of the raw device"
|
||||||
echo "Do not use your system disk!"
|
echo "Do not use your system disk!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
sgdisk -Z "{{ item }}"
|
sgdisk -Z "/dev/{{ item }}"
|
||||||
dd if=/dev/zero of="{{ item }}" bs=1M count=200
|
dd if=/dev/zero of="/dev/{{ item }}" bs=1M count=200
|
||||||
udevadm settle --timeout=600
|
udevadm settle --timeout=600
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ resolved_parent_device }}"
|
- "{{ resolved_parent_device }}"
|
||||||
|
|
Loading…
Reference in New Issue