mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2026-09-02 05:22:04 +03:00
rebased mrjsmith
This commit is contained in:
+7
-7
@@ -1,14 +1,14 @@
|
||||
---
|
||||
- name: centos | installing lvm2
|
||||
package:
|
||||
name: "lvm2"
|
||||
state: "present"
|
||||
name: lvm2
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: centos | installing sg3_utils
|
||||
package:
|
||||
name: "sg3_utils"
|
||||
state: "present"
|
||||
name: sg3_utils
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: centos | debug lvg
|
||||
@@ -36,12 +36,12 @@
|
||||
- lv.1.create|bool
|
||||
|
||||
- name: centos | checking for scsi devices
|
||||
command: "sg_scan"
|
||||
command: sg_scan
|
||||
become: true
|
||||
register: "scsi_devices"
|
||||
register: scsi_devices
|
||||
changed_when: false
|
||||
|
||||
- name: centos | rescanning for new disks
|
||||
command: "/usr/bin/rescan-scsi-bus.sh"
|
||||
command: /usr/bin/rescan-scsi-bus.sh
|
||||
become: true
|
||||
changed_when: false
|
||||
|
||||
+50
-65
@@ -1,22 +1,22 @@
|
||||
---
|
||||
- name: manage_lvm | unmounting filesystem(s)
|
||||
- name: create_fs | unmounting filesystem(s)
|
||||
mount:
|
||||
path: "{{ lv.mntp }}"
|
||||
src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
|
||||
fstype: "{{ lv.filesystem | default(omit) }}"
|
||||
state: "absent"
|
||||
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")
|
||||
when:
|
||||
- lv is defined
|
||||
- lv != 'None'
|
||||
- lv.create is defined
|
||||
- not lv.create|bool
|
||||
- lv.filesystem != "swap"
|
||||
|
||||
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
|
||||
- name: create_fs | creating new filesystem on new LVM logical volume(s)
|
||||
filesystem:
|
||||
fstype: "{{ lv.filesystem }}"
|
||||
dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
|
||||
@@ -25,23 +25,19 @@
|
||||
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
|
||||
when:
|
||||
- vg.create is defined
|
||||
- vg.create|bool
|
||||
- lv is defined
|
||||
- lv != 'None'
|
||||
- lv.create is defined
|
||||
- lv.create|bool
|
||||
- lv.filesystem is defined
|
||||
- lv.filesystem != 'None'
|
||||
- lv.filesystem != 'xfs'
|
||||
|
||||
- name: manage_lvm | check already converted
|
||||
# unable to resize xfs: looks like we've to reference the mountpoint instead of the device
|
||||
- name: create_fs | check already converted
|
||||
# at least xfs is executed twice if the partition has changed in the meantime
|
||||
# then it tries to recreate the fs on the mounted fs which indeed fails...
|
||||
shell: "xfs_info {{ lv.mntp }} | grep -c 'ftype=1'"
|
||||
@@ -51,22 +47,15 @@
|
||||
loop_var: lv
|
||||
register: mountedxfs
|
||||
ignore_errors: true
|
||||
changed_when: no
|
||||
when: >
|
||||
(
|
||||
(lv is defined and lv != 'None') and
|
||||
(
|
||||
lv.filesystem is defined and
|
||||
lv.filesystem == "xfs"
|
||||
)
|
||||
and
|
||||
(
|
||||
lv.create is defined and
|
||||
lv.create
|
||||
)
|
||||
)
|
||||
changed_when: false
|
||||
when:
|
||||
- lv is defined and lv != 'None'
|
||||
- lv.filesystem is defined
|
||||
- lv.filesystem == "xfs"
|
||||
- lv.create is defined
|
||||
- lv.create|bool
|
||||
|
||||
- name: manage_lvm | creating new xfs filesystem on new LVM logical volume(s)
|
||||
- name: create_fs | creating new xfs filesystem on new LVM logical volume(s)
|
||||
filesystem:
|
||||
fstype: "{{ lv.filesystem }}"
|
||||
dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
|
||||
@@ -74,38 +63,34 @@
|
||||
loop_control:
|
||||
loop_var: lv
|
||||
become: true
|
||||
when: >
|
||||
(
|
||||
mountedxfs is failed and
|
||||
(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'
|
||||
)
|
||||
)
|
||||
when:
|
||||
- mountedxfs is failed
|
||||
- vg.create is defined
|
||||
- vg.create|bool
|
||||
- lv is defined
|
||||
- lv != 'None'
|
||||
- lv.create is defined
|
||||
- lv.create|bool
|
||||
- lv.filesystem is defined
|
||||
- lv.filesystem == 'xfs'
|
||||
|
||||
- name: manage_lvm | mounting new filesystem(s)
|
||||
- name: create_fs | mounting new filesystem(s)
|
||||
mount:
|
||||
path: "{{ lv.mntp }}"
|
||||
src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}"
|
||||
fstype: "{{ lv.filesystem }}"
|
||||
state: "mounted"
|
||||
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 is defined and
|
||||
lv != 'None') and
|
||||
(lv.create is defined and
|
||||
lv.create) and
|
||||
(lv.mount is defined and
|
||||
lv.mount))
|
||||
when:
|
||||
- vg.create is defined
|
||||
- vg.create|bool
|
||||
- lv is defined
|
||||
- lv != 'None'
|
||||
- lv.create is defined
|
||||
- lv.create|bool
|
||||
- lv.mount is defined
|
||||
- lv.mount|bool
|
||||
|
||||
+12
-13
@@ -1,10 +1,10 @@
|
||||
---
|
||||
- name: "debug vg"
|
||||
- name: create_lv | Display Volume Group
|
||||
debug:
|
||||
var: vg
|
||||
verbosity: 2
|
||||
|
||||
- name: "debug lvm"
|
||||
- name: create_lv | debug lvm
|
||||
loop: "{{ vg.lvnames | default([]) }}"
|
||||
debug:
|
||||
var: lv
|
||||
@@ -12,23 +12,22 @@
|
||||
loop_control:
|
||||
loop_var: lv
|
||||
|
||||
- name: manage_lvm | creating new LVM logical volume(s)
|
||||
- name: create_lv | creating new LVM logical volume(s)
|
||||
lvol:
|
||||
vg: "{{ vg.vgname }}"
|
||||
lv: "{{ lv.lvname }}"
|
||||
size: "{{ lv.size }}"
|
||||
shrink: no
|
||||
shrink: false
|
||||
opts: "{{ lv.opts | default('') }}"
|
||||
state: "present"
|
||||
state: present
|
||||
loop: "{{ vg.lvnames | default([]) }}"
|
||||
loop_control:
|
||||
loop_var: lv
|
||||
become: true
|
||||
when: >
|
||||
(
|
||||
(vg.create is defined
|
||||
and vg.create) and
|
||||
(lv != 'None') and
|
||||
(lv.create is defined and
|
||||
lv.create)
|
||||
)
|
||||
when:
|
||||
- vg.create is defined
|
||||
- vg.create|bool
|
||||
- lv is defined
|
||||
- lv != 'None'
|
||||
- lv.create is defined
|
||||
- lv.create|bool
|
||||
|
||||
+5
-6
@@ -1,12 +1,11 @@
|
||||
---
|
||||
|
||||
- name: manage_lvm | creating new LVM volume group(s)
|
||||
- name: create_vg | creating new LVM volume group(s)
|
||||
lvg:
|
||||
vg: "{{ item.vgname }}"
|
||||
pvs: "{{ item.disks | join(',') }}"
|
||||
state: "present"
|
||||
state: present
|
||||
become: true
|
||||
loop: "{{ lvm_groups }}"
|
||||
when: >
|
||||
item.create is defined and
|
||||
item.create
|
||||
when:
|
||||
- item.create is defined
|
||||
- item.create|bool
|
||||
|
||||
+22
-22
@@ -1,40 +1,40 @@
|
||||
---
|
||||
- name: debian | Updating Apt Cache
|
||||
apt:
|
||||
update_cache: true
|
||||
cache_valid_time: 3600
|
||||
become: true
|
||||
|
||||
- name: debian | installing pre-reqs
|
||||
package:
|
||||
apt:
|
||||
name:
|
||||
- lvm2
|
||||
- scsitools
|
||||
state: "present"
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: debian | install xfs tools
|
||||
package:
|
||||
name: "xfsprogs"
|
||||
state: "present"
|
||||
become: yes
|
||||
apt:
|
||||
name: xfsprogs
|
||||
state: present
|
||||
become: true
|
||||
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
||||
when: >
|
||||
(
|
||||
(item.1 is defined and item.1 != 'None') and
|
||||
(
|
||||
item.1.filesystem is defined and
|
||||
item.1.filesystem == "xfs"
|
||||
)
|
||||
and
|
||||
(
|
||||
item.1.create is defined and
|
||||
item.1.create
|
||||
)
|
||||
)
|
||||
when:
|
||||
- item.1 is defined
|
||||
- item.1 != 'None'
|
||||
- item.1.filesystem is defined
|
||||
- item.1.filesystem == "xfs"
|
||||
- item.1.create is defined
|
||||
- item.1.create|bool
|
||||
|
||||
- name: debian | checking for scsi devices
|
||||
command: "sg_scan"
|
||||
command: sg_scan
|
||||
become: true
|
||||
register: "scsi_devices"
|
||||
register: scsi_devices
|
||||
changed_when: false
|
||||
|
||||
- name: debian | rescanning for new disks added
|
||||
command: "/sbin/rescan-scsi-bus"
|
||||
command: /sbin/rescan-scsi-bus
|
||||
become: true
|
||||
changed_when: false
|
||||
when: scsi_devices['stdout'] | length
|
||||
|
||||
+3
-3
@@ -7,6 +7,6 @@
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- include_tasks: manage_lvm.yml
|
||||
when: >
|
||||
manage_lvm and
|
||||
lvm_groups is defined
|
||||
when:
|
||||
- lvm_groups is defined
|
||||
- manage_lvm|bool
|
||||
|
||||
+11
-11
@@ -18,23 +18,23 @@
|
||||
lvol:
|
||||
vg: "{{ item.0.vgname }}"
|
||||
lv: "{{ item.1.lvname }}"
|
||||
state: "absent"
|
||||
force: yes
|
||||
state: absent
|
||||
force: true
|
||||
become: true
|
||||
loop: "{{ lvm_groups|subelements('lvnames', {'skip_missing': true}) }}"
|
||||
when: >
|
||||
(item.1 is defined and
|
||||
item.1 != 'None') and
|
||||
(item.1.create is defined and
|
||||
not item.1.create)
|
||||
when:
|
||||
- item.1 is defined
|
||||
- item.1 != 'None'
|
||||
- item.1.create is defined
|
||||
- not item.1.create|bool
|
||||
|
||||
- name: manage_lvm | Removing LVM volume group(s)
|
||||
lvg:
|
||||
vg: "{{ item.vgname }}"
|
||||
pvs: "{{ item.disks | join(',') }}"
|
||||
state: "absent"
|
||||
state: absent
|
||||
become: true
|
||||
loop: "{{ lvm_groups }}"
|
||||
when: >
|
||||
item.create is defined and
|
||||
not item.create
|
||||
when:
|
||||
- item.create is defined
|
||||
- not item.create|bool
|
||||
|
||||
Reference in New Issue
Block a user