mirror of https://github.com/ceph/ceph-ansible.git
110 lines
3.4 KiB
YAML
110 lines
3.4 KiB
YAML
---
|
|
- 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 }}"
|