--- - name: Tear down existing osd filesystems then logical volumes, volume groups, and physical volumes become: true hosts: osds vars_prompt: - name: ireallymeanit # noqa: name[casing] prompt: Are you sure you want to tear down the logical volumes? default: 'no' private: false tasks: - name: Exit playbook, if user did not mean to tear down logical volumes ansible.builtin.fail: msg: > "Exiting lv-teardown playbook, logical volumes were NOT torn down. To tear down the logical volumes, either say 'yes' on the prompt or or use `-e ireallymeanit=yes` on the command line when invoking the playbook" when: ireallymeanit != 'yes' - name: Include vars of lv_vars.yaml ansible.builtin.include_vars: file: lv_vars.yaml # noqa missing-import failed_when: false # need to check if lvm2 is installed - name: Install lvm2 ansible.builtin.package: name: lvm2 state: present register: result until: result is succeeded # BEGIN TEARDOWN - name: Find any existing osd filesystems ansible.builtin.shell: | set -o pipefail; grep /var/lib/ceph/osd /proc/mounts | awk '{print $2}' register: old_osd_filesystems changed_when: false - name: Tear down any existing osd filesystem ansible.posix.mount: path: "{{ item }}" state: unmounted with_items: "{{ old_osd_filesystems.stdout_lines }}" - name: Kill all lvm commands that may have been hung ansible.builtin.command: "killall -q lvcreate pvcreate vgcreate lvconvert || echo -n" failed_when: false changed_when: false ## Logcal Vols - name: Tear down existing lv for bucket index community.general.lvol: lv: "{{ item.lv_name }}" vg: "{{ nvme_vg_name }}" state: absent force: true with_items: "{{ nvme_device_lvs }}" - name: Tear down any existing hdd data lvs community.general.lvol: lv: "{{ hdd_lv_prefix }}-{{ item.split('/')[-1] }}" vg: "{{ hdd_vg_prefix }}-{{ item.split('/')[-1] }}" state: absent force: true with_items: "{{ hdd_devices }}" - name: Tear down any existing lv of journal for bucket index community.general.lvol: lv: "{{ item.journal_name }}" vg: "{{ nvme_vg_name }}" state: absent force: true with_items: "{{ nvme_device_lvs }}" - name: Tear down any existing lvs of hdd journals community.general.lvol: lv: "{{ hdd_journal_prefix }}-{{ item.split('/')[-1] }}" vg: "{{ nvme_vg_name }}" state: absent force: true with_items: "{{ hdd_devices }}" ## Volume Groups - name: Remove vg on nvme device community.general.lvg: vg: "{{ nvme_vg_name }}" state: absent force: true - name: Remove vg for each hdd device community.general.lvg: vg: "{{ hdd_vg_prefix }}-{{ item.split('/')[-1] }}" state: absent force: true with_items: "{{ hdd_devices }}" ## Physical Vols - name: Tear down pv for nvme device ansible.builtin.command: "pvremove --force --yes {{ nvme_device }}" changed_when: false - name: Tear down pv for each hdd device ansible.builtin.command: "pvremove --force --yes {{ item }}" changed_when: false with_items: "{{ hdd_devices }}"