mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2026-09-07 07:58:25 +03:00
use dots instead of carets
This commit is contained in:
@@ -1,44 +1,3 @@
|
|||||||
---
|
---
|
||||||
# handlers file for ansible-manage-lvm
|
# handlers file for ansible-manage-lvm
|
||||||
- name: manage_lvm | resizing swap
|
|
||||||
shell: "swapoff -a && mkswap /dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }} && swapon -va"
|
|
||||||
become: true
|
|
||||||
with_subelements:
|
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
|
||||||
item[1]['filesystem'] is defined and
|
|
||||||
item[1]['filesystem'] == "swap"
|
|
||||||
|
|
||||||
- name: manage_lvm | resizing btrfs
|
|
||||||
command: "btrfs filesystem resize max {{ item[1]['mntp'] }}"
|
|
||||||
become: true
|
|
||||||
with_subelements:
|
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
|
||||||
item[1]['filesystem'] is defined and
|
|
||||||
item[1]['filesystem'] == "btrfs"
|
|
||||||
|
|
||||||
- name: manage_lvm | resizing xfs
|
|
||||||
command: xfs_growfs -d {{ item[1]['mntp'] }}
|
|
||||||
become: true
|
|
||||||
with_subelements:
|
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
|
||||||
item[1]['filesystem'] is defined and
|
|
||||||
item[1]['filesystem'] == "xfs"
|
|
||||||
|
|
||||||
- name: manage_lvm | resizing filesystem
|
|
||||||
command: resize2fs /dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }}
|
|
||||||
become: true
|
|
||||||
with_subelements:
|
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
|
||||||
item[1]['filesystem'] is defined and
|
|
||||||
item[1]['filesystem'] != "None" and
|
|
||||||
item[1]['filesystem'] != "swap" and
|
|
||||||
item[1]['filesystem'] != "xfs" and
|
|
||||||
item[1]['filesystem'] != "btrfs"
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
size: 10%VG
|
size: 10%VG
|
||||||
opts: "--wipesignatures y"
|
opts: "--wipesignatures y"
|
||||||
create: true
|
create: true
|
||||||
filesystem: ext4
|
filesystem: xfs
|
||||||
mntp: "/var/lib/mountpoint2"
|
mntp: "/var/lib/mountpoint2"
|
||||||
manage_lvm: true
|
manage_lvm: true
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -20,3 +20,7 @@ def test_mylv_logical_volume_is_created(host):
|
|||||||
|
|
||||||
def test_volume_is_mounted(host):
|
def test_volume_is_mounted(host):
|
||||||
host.file("/var/lib/mountpoint").mode == 0o731
|
host.file("/var/lib/mountpoint").mode == 0o731
|
||||||
|
|
||||||
|
|
||||||
|
def test_volume2_is_mounted(host):
|
||||||
|
host.file("/var/lib/mountpoint2").mode == 0o731
|
||||||
|
|||||||
+21
-67
@@ -2,85 +2,39 @@
|
|||||||
|
|
||||||
- name: manage_lvm | creating new LVM logical volume(s)
|
- name: manage_lvm | creating new LVM logical volume(s)
|
||||||
lvol:
|
lvol:
|
||||||
vg: "{{ vg.item[0]['vgname'] }}"
|
vg: "{{ vg.0.vgname }}"
|
||||||
lv: "{{ vg.item[1]['lvname'] }}"
|
lv: "{{ vg.1.lvname'] }}"
|
||||||
size: "{{ vg.item[1]['size'] }}"
|
size: "{{ vg.1.size }}"
|
||||||
shrink: no
|
shrink: no
|
||||||
opts: "{{ vg.item[1]['opts'] | default('') }}"
|
opts: "{{ vg.1.opts | default('') }}"
|
||||||
state: "present"
|
state: "present"
|
||||||
become: true
|
become: true
|
||||||
notify:
|
|
||||||
- manage_lvm | resizing swap
|
|
||||||
- manage_lvm | resizing btrfs
|
|
||||||
- manage_lvm | resizing xfs
|
|
||||||
- manage_lvm | resizing filesystem
|
|
||||||
when: >
|
when: >
|
||||||
(
|
(
|
||||||
(vg.item[0]['create'] is defined
|
(vg.0.create is defined
|
||||||
and vg.item[0]['create']) and
|
and vg.0.create) and
|
||||||
(vg.item[1] is defined and
|
(vg[1] is defined and
|
||||||
vg.item[1] != 'None') and
|
vg.1 != 'None') and
|
||||||
(vg.item[1]['create'] is defined and
|
(vg.1.create is defined and
|
||||||
vg.item[1]['create'])
|
vg.1.create)
|
||||||
)
|
)
|
||||||
|
|
||||||
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
|
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
|
||||||
filesystem:
|
filesystem:
|
||||||
fstype: "{{ vg.item[1]['filesystem'] }}"
|
fstype: "{{ vg.1.filesystem }}"
|
||||||
dev: "/dev/{{ vg.item[0]['vgname'] }}/{{ vg.item[1]['lvname'] }}"
|
dev: "/dev/{{ vg.0.vgname }}/{{ vg.1.lvname }}"
|
||||||
# resizefs: yes #coming in 2.0 which will replace the resizing filesystem task below
|
resizefs: yes
|
||||||
become: true
|
become: true
|
||||||
when: >
|
when: >
|
||||||
(
|
(
|
||||||
(vg.item[0]['create'] is defined and
|
(vg.0.create is defined and
|
||||||
vg.item[0]['create']) and
|
vg.0.create) and
|
||||||
(vg.item[1] is defined and
|
(vg[1] is defined and
|
||||||
vg.item[1] != 'None') and
|
vg.1 != 'None') and
|
||||||
(vg.item[1]['create'] is defined and
|
(vg.1.create is defined and
|
||||||
vg.item[1]['create']) and
|
vg.1.create) and
|
||||||
(
|
(
|
||||||
vg.item[1]['filesystem'] is defined and
|
vg.1.filesystem is defined and
|
||||||
vg.item[1]['filesystem'] != 'None' and
|
vg.1.filesystem != 'None'
|
||||||
vg.item[1]['filesystem'] != "swap" and
|
|
||||||
vg.item[1]['filesystem'] != "xfs"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
- name: lvm | check already converted
|
|
||||||
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
|
||||||
shell: "xfs_info /dev/{{ vg.item.0.vgname }}/{{ vg.item.1.lvname }} | grep -c 'ftype=1'"
|
|
||||||
become: yes
|
|
||||||
register: alreadyformattedresult
|
|
||||||
ignore_errors: True
|
|
||||||
changed_when: no
|
|
||||||
when: >
|
|
||||||
(
|
|
||||||
(vg.item.1 is defined and vg.item.1 != 'None') and
|
|
||||||
(
|
|
||||||
vg.item.1.filesystem2 is defined and
|
|
||||||
vg.item.1.filesystem2 == "xfs"
|
|
||||||
)
|
|
||||||
and
|
|
||||||
(
|
|
||||||
vg.item.1.create is defined and
|
|
||||||
vg.item.1.create
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
|
|
||||||
command: mkfs.xfs /dev/{{ vg.item.0.vgname }}/{{ vg.item.1.lvname }}
|
|
||||||
become: yes
|
|
||||||
when: >
|
|
||||||
(
|
|
||||||
alreadyformattedresult and
|
|
||||||
(vg.item[0]['create'] is defined and
|
|
||||||
vg.item[0]['create']) and
|
|
||||||
(vg.item[1] is defined and
|
|
||||||
vg.item[1] != 'None') and
|
|
||||||
(vg.item[1]['create'] is defined and
|
|
||||||
vg.item[1]['create']) and
|
|
||||||
(
|
|
||||||
vg.item[1]['filesystem'] is defined and
|
|
||||||
vg.item[1]['filesystem'] == "xfs"
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
+6
-16
@@ -1,22 +1,12 @@
|
|||||||
---
|
---
|
||||||
- name: manage_lvm | check existing physical volume group(s)
|
|
||||||
shell: "vgdisplay | grep '{{ item['vgname'] }}'"
|
|
||||||
become: true
|
|
||||||
with_items: "{{ lvm_groups }}"
|
|
||||||
ignore_errors: True
|
|
||||||
changed_when: no
|
|
||||||
register: vg_exist
|
|
||||||
|
|
||||||
- debug: var=vg_exist
|
- name: manage_lvm | creating new LVM volume group(s)
|
||||||
|
|
||||||
- name: manage_lvm | creating new LVM physical volume group(s)
|
|
||||||
lvg:
|
lvg:
|
||||||
vg: "{{ item.item['vgname'] }}"
|
vg: "{{ item.vgname }}"
|
||||||
pvs: "{{ item.item['disks']|join(',') }}"
|
pvs: "{{ item.disks | join(',') }}"
|
||||||
state: "present"
|
state: "present"
|
||||||
become: true
|
become: true
|
||||||
with_items: "{{ vg_exist.results }}"
|
loop: "{{ lvm_groups }}"
|
||||||
when: >
|
when: >
|
||||||
item.rc != 0 and
|
item.create is defined and
|
||||||
item.item['create'] is defined and
|
item.create
|
||||||
item.item['create']
|
|
||||||
|
|||||||
+2
-2
@@ -8,5 +8,5 @@
|
|||||||
|
|
||||||
- include: manage_lvm.yml
|
- include: manage_lvm.yml
|
||||||
when: >
|
when: >
|
||||||
manage_lvm and
|
manage_lvm and
|
||||||
lvm_groups is defined
|
lvm_groups is defined
|
||||||
|
|||||||
+36
-58
@@ -2,89 +2,67 @@
|
|||||||
- 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 | check existing logical volume group(s)
|
|
||||||
shell: "lvs -o lv_name {{ item[0]['vgname'] }} --separator='|' --noheadings | grep {{ item[1]['lvname'] }}"
|
|
||||||
become: true
|
|
||||||
ignore_errors: True
|
|
||||||
changed_when: no
|
|
||||||
with_subelements:
|
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
register: lv_exist
|
|
||||||
|
|
||||||
- debug: var=lv_exist
|
|
||||||
|
|
||||||
- name: manage_lvm | loop over logical volume(s)
|
- name: manage_lvm | loop over logical volume(s)
|
||||||
include: create_lv.yml
|
include: create_lv.yml
|
||||||
loop: "{{ lv_exist.results }}"
|
loop: "{{ lvm_groups }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: vg
|
loop_var: vg
|
||||||
when: >
|
|
||||||
vg.rc != 0
|
|
||||||
|
|
||||||
- name: manage_lvm | unmounting filesystem(s)
|
- name: manage_lvm | unmounting filesystem(s)
|
||||||
mount:
|
mount:
|
||||||
name: "{{ item[1]['mntp'] }}"
|
name: "{{ item.1.mntp }}"
|
||||||
src: "/dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }}"
|
src: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
|
||||||
fstype: "{{ item[1]['filesystem'] | default(omit) }}"
|
fstype: "{{ item.1.filesystem | default(omit) }}"
|
||||||
state: "absent"
|
state: "absent"
|
||||||
become: true
|
become: true
|
||||||
with_subelements:
|
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
when: >
|
||||||
(item[1] is defined and
|
(item.1 is defined and
|
||||||
item[1] != 'None') and
|
item.1 != 'None') and
|
||||||
(item[1]['create'] is defined and
|
(item.1.create is defined and
|
||||||
not item[1]['create'] and
|
not item.1.create and
|
||||||
item[1]['filesystem'] != "swap")
|
item.1.filesystem != "swap")
|
||||||
|
|
||||||
- meta: flush_handlers
|
|
||||||
|
|
||||||
- name: manage_lvm | mounting new filesystem(s)
|
- name: manage_lvm | mounting new filesystem(s)
|
||||||
mount:
|
mount:
|
||||||
name: "{{ item[1]['mntp'] }}"
|
name: "{{ item.1.mntp }}"
|
||||||
src: "/dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }}"
|
src: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
|
||||||
fstype: "{{ item[1]['filesystem'] }}"
|
fstype: "{{ item.1.filesystem }}"
|
||||||
state: "mounted"
|
state: "mounted"
|
||||||
opts: "{{ item[1]['mopts'] | default('defaults') }}"
|
opts: "{{ item.1.mopts | default('defaults') }}"
|
||||||
become: true
|
become: true
|
||||||
with_subelements:
|
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
when: >
|
||||||
((item[0]['create'] is defined and
|
((item.0.create is defined and
|
||||||
item[0]['create']) and
|
item.0.create) and
|
||||||
(item[1] is defined and
|
(item.1 is defined and
|
||||||
item[1] != 'None') and
|
item.1 != 'None') and
|
||||||
(item[1]['create'] is defined and
|
(item.1.create is defined and
|
||||||
item[1]['create']) and
|
item.1.create) and
|
||||||
(item[1]['mount'] is defined and
|
(item.1.mount is defined and
|
||||||
item[1]['mount']))
|
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.0.vgname }}"
|
||||||
lv: "{{ item[1]['lvname'] }}"
|
lv: "{{ item.1.lvname }}"
|
||||||
state: "absent"
|
state: "absent"
|
||||||
force: yes
|
force: yes
|
||||||
become: true
|
become: true
|
||||||
with_subelements:
|
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
||||||
- "{{ lvm_groups }}"
|
|
||||||
- lvnames
|
|
||||||
when: >
|
when: >
|
||||||
(item[1] is defined and
|
(item.1 is defined and
|
||||||
item[1] != 'None') and
|
item.1 != 'None') and
|
||||||
(item[1]['create'] is defined and
|
(item.1.create is defined and
|
||||||
not item[1]['create'])
|
not item.1.create)
|
||||||
|
|
||||||
- name: manage_lvm | Removing LVM physical volume group(s)
|
- name: manage_lvm | Removing LVM volume group(s)
|
||||||
lvg:
|
lvg:
|
||||||
vg: "{{ item['vgname'] }}"
|
vg: "{{ item.vgname }}"
|
||||||
pvs: "{{ item['disks']|join(',') }}"
|
pvs: "{{ item.disks | join(',') }}"
|
||||||
state: "absent"
|
state: "absent"
|
||||||
become: true
|
become: true
|
||||||
with_items: "{{ lvm_groups }}"
|
loop: "{{ lvm_groups }}"
|
||||||
when: >
|
when: >
|
||||||
item['create'] is defined and
|
item.create is defined and
|
||||||
not item['create']
|
not item.create
|
||||||
|
|||||||
Reference in New Issue
Block a user