purge-cluster: use parted ansible module

Instead of doing some scripting via the shell module, we can use the
parted ansible module to check the boot flag on partitions.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
pull/6238/head
Dimitri Savineau 2021-01-12 15:47:42 -05:00 committed by Guillaume Abrioux
parent bc6948037f
commit 36fc04eaab
1 changed files with 12 additions and 7 deletions

View File

@ -581,15 +581,20 @@
changed_when: false changed_when: false
with_items: "{{ combined_devices_list }}" with_items: "{{ combined_devices_list }}"
- name: check parent device partition
parted:
device: "/dev/{{ item }}"
loop: "{{ resolved_parent_device }}"
register: parted_info
- name: fail if there is a boot partition on the device
fail:
msg: "{{ item.item }} has a boot partition"
loop: "{{ parted_info.results }}"
when: "'boot' in (item.partitions | map(attribute='flags') | list | flatten)"
- name: zap ceph journal/block db/block wal partitions # noqa 306 - name: zap ceph journal/block db/block wal partitions # noqa 306
shell: | shell: |
# if the disk passed is a raw device AND the boot system disk
if parted -s /dev/"{{ item }}" print | grep -sq boot; then
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 "Do not use your system disk!"
exit 1
fi
sgdisk -Z --clear --mbrtogpt -g -- /dev/"{{ item }}" sgdisk -Z --clear --mbrtogpt -g -- /dev/"{{ item }}"
dd if=/dev/zero of=/dev/"{{ item }}" bs=1M count=200 dd if=/dev/zero of=/dev/"{{ item }}" bs=1M count=200
parted -s /dev/"{{ item }}" mklabel gpt parted -s /dev/"{{ item }}" mklabel gpt