mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2026-05-25 22:27:23 +03:00
94 lines
3.1 KiB
YAML
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
|