configured molecule and fix xfs on centos

This commit is contained in:
Charlie Mordant
2020-04-15 16:56:18 +02:00
parent ba5d929fce
commit 17e8ec1058
6 changed files with 128 additions and 72 deletions

View File

@@ -1,3 +1,2 @@
--- ---
# handlers file for ansible-manage-lvm # handlers file for ansible-manage-lvm

View File

@@ -13,10 +13,12 @@
opts: "--wipesignatures y" opts: "--wipesignatures y"
create: true create: true
filesystem: ext4 filesystem: ext4
mount: true
mntp: "/var/lib/mountpoint" mntp: "/var/lib/mountpoint"
- lvname: my_lv2 - lvname: my_lv2
size: 10%VG size: 20%VG
opts: "--wipesignatures y" opts: "--wipesignatures y"
mount: true
create: true create: true
filesystem: xfs filesystem: xfs
mntp: "/var/lib/mountpoint2" mntp: "/var/lib/mountpoint2"

93
tasks/create_fs.yml Normal file
View File

@@ -0,0 +1,93 @@
---
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
filesystem:
fstype: "{{ lv.filesystem }}"
dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
resizefs: yes
loop: "{{ vg.lvnames }}"
loop_control:
loop_var: lv
become: true
when: >
(
(vg.create is defined and
vg.create) and
(lv is defined and
lv != 'None') and
(lv.create is defined and
lv.create) and
(
lv.filesystem is defined and
lv.filesystem != 'None' and
lv.filesystem != 'xfs'
)
)
# unable to resize xfs: looks like we've to reference the mountpoint instead of the device
- name: manage_lvm | creating new xfs filesystem on new LVM logical volume(s)
filesystem:
fstype: "{{ lv.filesystem }}"
dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
loop: "{{ vg.lvnames }}"
loop_control:
loop_var: lv
become: true
when: >
(
(vg.create is defined and
vg.create) and
(lv is defined and
lv != 'None') and
(lv.create is defined and
lv.create) and
(
lv.filesystem is defined and
lv.filesystem == 'xfs'
)
)
# unable to resize xfs: looks like we've to reference the mountpoint instead of the device
- name: manage_lvm | unmounting filesystem(s)
mount:
path: "{{ lv.mntp }}"
src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
fstype: "{{ lv.filesystem | default(omit) }}"
state: "absent"
become: true
loop: "{{ vg.lvnames }}"
loop_control:
loop_var: lv
when: >
(lv is defined and
lv != 'None') and
(lv.create is defined and
not lv.create and
lv.filesystem != "swap")
- name: "debug mount"
loop: "{{ vg.lvnames }}"
debug: var=lv
loop_control:
loop_var: lv
- name: manage_lvm | mounting new filesystem(s)
mount:
path: "{{ lv.mntp }}"
src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
fstype: "{{ lv.filesystem }}"
state: "mounted"
opts: "{{ lv.mopts | default('defaults') }}"
become: true
loop: "{{ vg.lvnames }}"
loop_control:
loop_var: lv
when: >
((vg.create is defined and
vg.create) and
lv != 'None' and
(lv.create is defined and
lv.create) and
(lv.mount is defined and
lv.mount))

View File

@@ -1,40 +1,30 @@
--- ---
- debug: var=vg
- name: "debug lvm"
loop: "{{ vg.lvnames }}"
debug: var=lv
loop_control:
loop_var: lv
- name: manage_lvm | creating new LVM logical volume(s) - name: manage_lvm | creating new LVM logical volume(s)
lvol: lvol:
vg: "{{ vg.0.vgname }}" vg: "{{ vg.vgname }}"
lv: "{{ vg.1.lvname'] }}" lv: "{{ lv.lvname }}"
size: "{{ vg.1.size }}" size: "{{ lv.size }}"
shrink: no shrink: no
opts: "{{ vg.1.opts | default('') }}" opts: "{{ lv.opts | default('') }}"
state: "present" state: "present"
loop: "{{ vg.lvnames }}"
loop_control:
loop_var: lv
become: true become: true
when: > when: >
( (
(vg.0.create is defined (vg.create is defined
and vg.0.create) and and vg.create) and
(vg[1] is defined and (lv is defined and
vg.1 != 'None') and lv != 'None') and
(vg.1.create is defined and (lv.create is defined and
vg.1.create) lv.create)
)
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
filesystem:
fstype: "{{ vg.1.filesystem }}"
dev: "/dev/{{ vg.0.vgname }}/{{ vg.1.lvname }}"
resizefs: yes
become: true
when: >
(
(vg.0.create is defined and
vg.0.create) and
(vg[1] is defined and
vg.1 != 'None') and
(vg.1.create is defined and
vg.1.create) and
(
vg.1.filesystem is defined and
vg.1.filesystem != 'None'
)
) )

View File

@@ -2,59 +2,31 @@
- name: manage_lvm | manage physical volume group creation - name: manage_lvm | manage physical volume group creation
include: create_vg.yml include: create_vg.yml
- name: manage_lvm | loop over logical volume(s) - name: manage_lvm | loop over logical volume group(s) to create logical volumes
include: create_lv.yml include: create_lv.yml
loop: "{{ lvm_groups }}" loop: "{{ lvm_groups }}"
loop_control: loop_control:
loop_var: vg loop_var: vg
- name: manage_lvm | unmounting filesystem(s) - name: manage_lvm | loop over logical volume group(s) to create filesystems
mount: include: create_fs.yml
name: "{{ item.1.mntp }}" loop: "{{ lvm_groups }}"
src: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}" loop_control:
fstype: "{{ item.1.filesystem | default(omit) }}" loop_var: vg
state: "absent"
become: true
loop: "{{ lvm_groups|subelements('lvnames') }}"
when: >
(item.1 is defined and
item.1 != 'None') and
(item.1.create is defined and
not item.1.create and
item.1.filesystem != "swap")
- 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"
opts: "{{ item.1.mopts | default('defaults') }}"
become: true
loop: "{{ lvm_groups|subelements('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 | Removing LVM logical volume(s) - name: manage_lvm | Removing LVM logical volume(s)
lvol: lvol:
vg: "{{ item.0.vgname }}" vg: "{{ item.vgname }}"
lv: "{{ item.1.lvname }}" lv: "{{ item.0.lvname }}"
state: "absent" state: "absent"
force: yes force: yes
become: true become: true
loop: "{{ lvm_groups|subelements('lvnames') }}" loop: "{{ lvm_groups|subelements('lvnames') }}"
when: > when: >
(item.1 is defined and (item.0 is defined and
item.1 != 'None') and item.0 != 'None') and
(item.1.create is defined and (item.0.create is defined and
not item.1.create) not item.0.create)
- name: manage_lvm | Removing LVM volume group(s) - name: manage_lvm | Removing LVM volume group(s)
lvg: lvg: