diff --git a/tasks/manage_lvm.yml b/tasks/manage_lvm.yml new file mode 100644 index 0000000..846896a --- /dev/null +++ b/tasks/manage_lvm.yml @@ -0,0 +1,66 @@ +--- +- 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 | 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 + +- name: manage_lvm | creating new LVM logical volume(s) + lvol: + vg: "{{ item.0.vgname }}" + lv: "{{ item.1.lvname }}" + size: "{{ item.1.size }}" + state: present + with_subelements: + - lvm_groups + - lvnames + when: ( item.0.create is defined and item.0.create ) and ( item.1.create is defined and item.1.create ) + +- name: manage_lvm | Removing LVM logical volume(s) + lvol: + vg: "{{ item.0.vgname }}" + lv: "{{ item.1.lvname }}" + state: absent + with_subelements: + - lvm_groups + - lvnames + when: ( item.0.create is defined and item.0.create ) and ( item.1.create is defined and not 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 }}" + with_subelements: + - lvm_groups + - lvnames + when: ( item.0.create is defined and item.0.create ) 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.create is defined and item.1.create ) and ( item.1.mount is defined and item.1.mount ) + +- name: manage_lvm | extending existing filesystem + command: lvextend {{ item.1.lvextend_options }} /dev/{{ item.0.vgname }}/{{ item.1.lvname }} + with_subelements: + - lvm_groups + - lvnames + when: ( item.0.create is defined and item.0.create ) and ( item.1.create is defined and item.1.create ) and ( item.1.extend is defined and item.1.extend )