Files
ansible-manage-lvm/tasks/manage_lvm.yml
T

94 lines
3.1 KiB
YAML

---
- name: manage_lvm | creating new LVM volume group(s)
lvg:
vg: "{{ item.vgname }}"
pvs: "{{ item.disks }}"
state: present
with_items: "{{ lvm_groups }}"
when: item.create is defined and item.create
- name: manage_lvm | creating new LVM logical volume(s)
lvol:
vg: "{{ item.0.vgname }}"
lv: "{{ item.1.lvname }}"
size: "{{ item.1.size }}"
shrink: no
state: present
register: lvm
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: ( item.0.create is defined and item.0.create ) and ( item.1 is defined and item.1 != 'None' ) and ( item.1.create is defined and item.1.create )
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
filesystem:
fstype: "{{ item.1.filesystem }}"
dev: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
# resizefs: yes #coming in 2.0 which will replace the resizing filesystem task below
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: ( item.0.create is defined and item.0.create ) and ( item.1 is defined and item.1 != 'None' ) and ( item.1.create is defined and item.1.create )
- name: manage_lvm | mounting new filesystem(s)
mount:
name: "{{ item.1.mntp }}"
src: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
fstype: "{{ item.1.filesystem }}"
state: mounted
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: ( item.0.create is defined and item.0.create ) and ( item.1 is defined and item.1 != 'None' ) and ( item.1.create is defined and item.1.create ) and ( item.1.mount is defined and item.1.mount )
- name: manage_lvm | resizing filesystem
command: resize2fs /dev/{{ item.0.vgname }}/{{ item.1.lvname }}
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: lvm.changed and item.1.filesystem != "swap" and item.1.filesystem != "xfs"
- name: manage_lvm | resizing xfs
command: xfs_growfs -d /dev/{{ item.0.vgname }}/{{ item.1.lvname }}
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: lvm.changed and item.1.filesystem == "xfs"
- name: manage_lvm | resizing swap
shell: "swapoff -a && mkswap /dev/{{ item.0.vgname }}/{{ item.1.lvname }} && swapon -va"
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: lvm.changed and item.1.filesystem == "swap"
- name: manage_lvm | unmounting filesystem(s)
mount:
name: "{{ item.1.mntp }}"
src: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
fstype: "{{ item.1.filesystem }}"
state: absent
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: ( item.1 is defined and item.1 != 'None' ) and ( item.1.create is defined and not item.1.create )
- name: manage_lvm | Removing LVM logical volume(s)
lvol:
vg: "{{ item.0.vgname }}"
lv: "{{ item.1.lvname }}"
state: absent
force: yes
with_subelements:
- "{{ lvm_groups }}"
- lvnames
when: ( item.1 is defined and item.1 != 'None' ) and ( item.1.create is defined and not item.1.create )
- name: manage_lvm | Removing LVM volume group(s)
lvg:
vg: "{{ item.vgname }}"
pvs: "{{ item.disks }}"
state: absent
with_items: "{{ lvm_groups }}"
when: item.create is defined and not item.create