mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2026-09-06 15:38:11 +03:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 118ec79cb0 | |||
| 563aa1effb | |||
| 4a58cb36cf | |||
| a0c784797f | |||
| 51b79c5e71 | |||
| 66368de1d3 | |||
| 075acb3484 | |||
| 386cc28bdb | |||
| 26ed7d826c | |||
| 0d255cb5ce | |||
| 9844b5fd47 | |||
| f2d06d0d46 |
@@ -1,89 +1,135 @@
|
|||||||
Role Name
|
# Role Name
|
||||||
=========
|
|
||||||
|
|
||||||
Role to manage LVM Groups/Logical Volumes. Can be used to create, extend or resize LVM Groups and volumes.
|
An [Ansible] role to manage LVM Groups/Logical Volumes.
|
||||||
|
|
||||||
Requirements
|
> NOTE: Can be used to create, extend or resize LVM Groups and volumes.
|
||||||
------------
|
|
||||||
|
|
||||||
Devices/disks to be part of the LVM setup must be identified prior to using this role. Ensure that you select the correct devices/disks.
|
## Requirements
|
||||||
##### To only create an LVM VG w/out creating LVM LVOLS...define lvname w/ var as None as in the below example.
|
|
||||||
|
|
||||||
Role Variables
|
Devices/disks to be members of the LVM setup **must be** identified prior to
|
||||||
--------------
|
using this role.
|
||||||
|
|
||||||
````
|
> NOTE: Ensure that you select the correct devices/disks.
|
||||||
|
>
|
||||||
|
> NOTE: To create an LVM VG w/out creating LVM LVOLS...define lvname w/ var as
|
||||||
|
> `None` as in the below example.
|
||||||
|
|
||||||
|
## Role Variables
|
||||||
|
|
||||||
|
```yaml
|
||||||
---
|
---
|
||||||
# defaults file for ansible-manage-lvm
|
# defaults file for ansible-manage-lvm
|
||||||
lvm_groups:
|
lvm_groups: []
|
||||||
- vgname: ubuntu-vg
|
# - vgname: ubuntu-vg
|
||||||
disks: /dev/sda5,/dev/sdc,/dev/sdd #for multiple disks...../dev/sdb,/dev/sdc
|
# disks:
|
||||||
create: true #defines if VG should exist or be removed....true or false
|
# - /dev/sda5
|
||||||
lvnames:
|
# - /dev/sdc
|
||||||
- lvname: swap_1
|
# - /dev/sdd
|
||||||
size: 5g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# # defines if VG should exist or be removed
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# # true or false
|
||||||
filesystem: swap #defines filesystem to format lvol as
|
# create: true
|
||||||
mount: false #defines if filesystem should be mounted
|
# lvnames:
|
||||||
mntp: [] #defines mountpoint for lvol
|
# - lvname: swap_1
|
||||||
- lvname: root
|
# # Define size of lvol
|
||||||
size: 40g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# # 100%FREE, 10g, 1024 (megabytes by default)
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# size: 5g
|
||||||
filesystem: ext4 #defines filesystem to format lvol as
|
# # Defines additional lvcreate options (e.g. stripes, stripesize, etc)
|
||||||
mount: true
|
# opts: ''
|
||||||
mntp: / #defines mountpoint for lvol
|
# # Defines if lvol should exist or be removed
|
||||||
- vgname: test-vg
|
# # true or false
|
||||||
disks: /dev/sdb #for multiple disks...../dev/sdb,/dev/sdc
|
# create: true
|
||||||
create: true #defines if VG should exist or be removed....true or false
|
# # Defines filesystem to format lvol as
|
||||||
lvnames:
|
# filesystem: swap
|
||||||
- lvname: test_1
|
# # Defines if filesystem should be mounted
|
||||||
size: 5g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# mount: false
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# # Defines mountpoint for lvol
|
||||||
filesystem: ext4 #defines filesystem to format lvol as
|
# mntp: []
|
||||||
mount: true #defines if filesystem should be mounted
|
# # Defines additional mount options (e.g. noatime, noexec, etc)
|
||||||
mntp: /mnt/test_1 #defines mountpoint for lvol
|
# mopts: ''
|
||||||
- lvname: test_2
|
# - lvname: root
|
||||||
size: 10g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# size: 40g
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# create: true
|
||||||
filesystem: ext4 #defines filesystem to format lvol as
|
# filesystem: ext4
|
||||||
mount: true
|
# mount: true
|
||||||
mntp: /mnt/test_2 #defines mountpoint for lvol
|
# mntp: /
|
||||||
# - vgname: cinder-volumes
|
# - vgname: test-vg
|
||||||
# disks: /dev/cciss/c0d1 #for multiple disks...../dev/sdb,/dev/sdc
|
# disks:
|
||||||
# create: true #defines if VG should exist or be removed....true or false
|
# - /dev/sdb
|
||||||
# lvnames:
|
# create: true
|
||||||
# - None #set to None to only create LVM VG w/out creating LVM LVOLS...
|
# lvnames:
|
||||||
manage_lvm: false #defines if LVM will be managed by role....default is false to ensure nothing is changed by accident.
|
# - lvname: test_1
|
||||||
````
|
# size: 5g
|
||||||
|
# create: true
|
||||||
|
# filesystem: ext4
|
||||||
|
# mount: true
|
||||||
|
# mntp: /mnt/test_1
|
||||||
|
# - lvname: test_2
|
||||||
|
# size: 10g
|
||||||
|
# create: true
|
||||||
|
# filesystem: ext4
|
||||||
|
# mount: true
|
||||||
|
# mntp: /mnt/test_2
|
||||||
|
# - vgname: cinder-volumes
|
||||||
|
# disks:
|
||||||
|
# - /dev/cciss/c0d1
|
||||||
|
# create: true
|
||||||
|
# lvnames:
|
||||||
|
# # Set to None to only create LVM VG w/out creating LVM LVOLS
|
||||||
|
# - None
|
||||||
|
|
||||||
Dependencies
|
# Defines if LVM will be managed by role
|
||||||
------------
|
# default is false to ensure nothing is changed by accident.
|
||||||
|
manage_lvm: false
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
None
|
None
|
||||||
|
|
||||||
Example Playbook
|
## Example Playbook
|
||||||
----------------
|
|
||||||
|
|
||||||
#### Galaxy
|
```yaml
|
||||||
-----------
|
---
|
||||||
- hosts: servers
|
- hosts: test-nodes
|
||||||
|
vars:
|
||||||
|
lvm_groups:
|
||||||
|
- vgname: test-vg
|
||||||
|
disks:
|
||||||
|
- /dev/sdb
|
||||||
|
- /dev/sdc
|
||||||
|
create: true
|
||||||
|
lvnames:
|
||||||
|
- lvname: test_1
|
||||||
|
size: 5g
|
||||||
|
create: true
|
||||||
|
filesystem: ext4
|
||||||
|
mount: true
|
||||||
|
mntp: /mnt/test_1
|
||||||
|
- lvname: test_2
|
||||||
|
size: 10g
|
||||||
|
create: true
|
||||||
|
filesystem: ext4
|
||||||
|
mount: true
|
||||||
|
mntp: /mnt/test_2
|
||||||
|
manage_lvm: true
|
||||||
|
pri_domain_name: 'test.vagrant.local'
|
||||||
roles:
|
roles:
|
||||||
- mrlesmithjr.manage-lvm
|
- role: ansible-manage-lvm
|
||||||
#### GitHub
|
tasks:
|
||||||
-----------
|
```
|
||||||
- hosts: servers
|
|
||||||
roles:
|
|
||||||
- ansible-manage-lvm
|
|
||||||
|
|
||||||
License
|
## License
|
||||||
-------
|
|
||||||
|
|
||||||
BSD
|
BSD
|
||||||
|
|
||||||
Author Information
|
## Author Information
|
||||||
------------------
|
|
||||||
|
|
||||||
Larry Smith Jr.
|
Larry Smith Jr.
|
||||||
- @mrlesmithjr
|
|
||||||
- http://everythingshouldbevirtual.com
|
- [@mrlesmithjr]
|
||||||
|
- <http://everythingshouldbevirtual.com>
|
||||||
- mrlesmithjr [at] gmail.com
|
- mrlesmithjr [at] gmail.com
|
||||||
|
|
||||||
|
[@mrlesmithjr]: https://www.twitter.com/mrlesmithjr
|
||||||
|
|
||||||
|
[ansible]: https://www.ansible.com
|
||||||
|
|||||||
+61
-39
@@ -1,41 +1,63 @@
|
|||||||
---
|
---
|
||||||
# defaults file for ansible-manage-lvm
|
# defaults file for ansible-manage-lvm
|
||||||
lvm_groups:
|
lvm_groups: []
|
||||||
- vgname: ubuntu-vg
|
# - vgname: ubuntu-vg
|
||||||
disks: /dev/sda5,/dev/sdc,/dev/sdd #for multiple disks...../dev/sdb,/dev/sdc
|
# disks:
|
||||||
create: true #defines if VG should exist or be removed....true or false
|
# - /dev/sda5
|
||||||
lvnames:
|
# - /dev/sdc
|
||||||
- lvname: swap_1
|
# - /dev/sdd
|
||||||
size: 5g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# # defines if VG should exist or be removed
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# # true or false
|
||||||
filesystem: swap #defines filesystem to format lvol as
|
# create: true
|
||||||
mount: false #defines if filesystem should be mounted
|
# lvnames:
|
||||||
mntp: [] #defines mountpoint for lvol
|
# - lvname: swap_1
|
||||||
- lvname: root
|
# # Define size of lvol
|
||||||
size: 40g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# # 100%FREE, 10g, 1024 (megabytes by default)
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# size: 5g
|
||||||
filesystem: ext4 #defines filesystem to format lvol as
|
# # Defines additional lvcreate options (e.g. stripes, stripesize, etc)
|
||||||
mount: true
|
# opts: ''
|
||||||
mntp: / #defines mountpoint for lvol
|
# # Defines if lvol should exist or be removed
|
||||||
- vgname: test-vg
|
# # true or false
|
||||||
disks: /dev/sdb #for multiple disks...../dev/sdb,/dev/sdc
|
# create: true
|
||||||
create: true #defines if VG should exist or be removed....true or false
|
# # Defines filesystem to format lvol as
|
||||||
lvnames:
|
# filesystem: swap
|
||||||
- lvname: test_1
|
# # Defines if filesystem should be mounted
|
||||||
size: 5g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# mount: false
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# # Defines mountpoint for lvol
|
||||||
filesystem: ext4 #defines filesystem to format lvol as
|
# mntp: []
|
||||||
mount: true #defines if filesystem should be mounted
|
# # Defines additional mount options (e.g. noatime, noexec, etc)
|
||||||
mntp: /mnt/test_1 #defines mountpoint for lvol
|
# mopts: ''
|
||||||
- lvname: test_2
|
# - lvname: root
|
||||||
size: 10g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
|
# size: 40g
|
||||||
create: true #defines if lvol should exist or be removed...true or false
|
# create: true
|
||||||
filesystem: ext4 #defines filesystem to format lvol as
|
# filesystem: ext4
|
||||||
mount: true
|
# mount: true
|
||||||
mntp: /mnt/test_2 #defines mountpoint for lvol
|
# mntp: /
|
||||||
# - vgname: cinder-volumes
|
# - vgname: test-vg
|
||||||
# disks: /dev/cciss/c0d1 #for multiple disks...../dev/sdb,/dev/sdc
|
# disks:
|
||||||
# create: true #defines if VG should exist or be removed....true or false
|
# - /dev/sdb
|
||||||
# lvnames:
|
# create: true
|
||||||
# - None #set to None to only create LVM VG w/out creating LVM LVOLS...
|
# lvnames:
|
||||||
manage_lvm: false #defines if LVM will be managed by role....default is false to ensure nothing is changed by accident.
|
# - lvname: test_1
|
||||||
|
# size: 5g
|
||||||
|
# create: true
|
||||||
|
# filesystem: ext4
|
||||||
|
# mount: true
|
||||||
|
# mntp: /mnt/test_1
|
||||||
|
# - lvname: test_2
|
||||||
|
# size: 10g
|
||||||
|
# create: true
|
||||||
|
# filesystem: ext4
|
||||||
|
# mount: true
|
||||||
|
# mntp: /mnt/test_2
|
||||||
|
# - vgname: cinder-volumes
|
||||||
|
# disks:
|
||||||
|
# - /dev/cciss/c0d1
|
||||||
|
# create: true
|
||||||
|
# lvnames:
|
||||||
|
# # Set to None to only create LVM VG w/out creating LVM LVOLS
|
||||||
|
# - None
|
||||||
|
|
||||||
|
# Defines if LVM will be managed by role
|
||||||
|
# default is false to ensure nothing is changed by accident.
|
||||||
|
manage_lvm: false
|
||||||
|
|||||||
+5
-106
@@ -15,123 +15,22 @@ galaxy_info:
|
|||||||
# - CC-BY
|
# - CC-BY
|
||||||
license: license (GPLv2, CC-BY, etc)
|
license: license (GPLv2, CC-BY, etc)
|
||||||
min_ansible_version: 1.2
|
min_ansible_version: 1.2
|
||||||
#
|
|
||||||
# Below are all platforms currently available. Just uncomment
|
|
||||||
# the ones that apply to your role. If you don't see your
|
|
||||||
# platform on this list, let us know and we'll get it added!
|
|
||||||
#
|
|
||||||
platforms:
|
platforms:
|
||||||
- name: EL
|
- name: EL
|
||||||
versions:
|
versions:
|
||||||
# - all
|
|
||||||
# - 5
|
|
||||||
- 6
|
- 6
|
||||||
- 7
|
- 7
|
||||||
#- name: GenericUNIX
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - any
|
|
||||||
#- name: Fedora
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - 16
|
|
||||||
# - 17
|
|
||||||
# - 18
|
|
||||||
# - 19
|
|
||||||
# - 20
|
|
||||||
# - 21
|
|
||||||
# - 22
|
|
||||||
#- name: Windows
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - 2012R2
|
|
||||||
#- name: SmartOS
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - any
|
|
||||||
#- name: opensuse
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - 12.1
|
|
||||||
# - 12.2
|
|
||||||
# - 12.3
|
|
||||||
# - 13.1
|
|
||||||
# - 13.2
|
|
||||||
#- name: Amazon
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - 2013.03
|
|
||||||
# - 2013.09
|
|
||||||
#- name: GenericBSD
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - any
|
|
||||||
#- name: FreeBSD
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - 8.0
|
|
||||||
# - 8.1
|
|
||||||
# - 8.2
|
|
||||||
# - 8.3
|
|
||||||
# - 8.4
|
|
||||||
# - 9.0
|
|
||||||
# - 9.1
|
|
||||||
# - 9.1
|
|
||||||
# - 9.2
|
|
||||||
- name: Ubuntu
|
- name: Ubuntu
|
||||||
versions:
|
versions:
|
||||||
# - all
|
|
||||||
# - lucid
|
|
||||||
# - maverick
|
|
||||||
# - natty
|
|
||||||
# - oneiric
|
|
||||||
- precise
|
- precise
|
||||||
# - quantal
|
|
||||||
# - raring
|
|
||||||
# - saucy
|
|
||||||
- trusty
|
- trusty
|
||||||
# - utopic
|
- name: Debian
|
||||||
# - vivid
|
versions:
|
||||||
#- name: SLES
|
- jessie
|
||||||
# versions:
|
- wheezy
|
||||||
# - all
|
|
||||||
# - 10SP3
|
|
||||||
# - 10SP4
|
|
||||||
# - 11
|
|
||||||
# - 11SP1
|
|
||||||
# - 11SP2
|
|
||||||
# - 11SP3
|
|
||||||
#- name: GenericLinux
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - any
|
|
||||||
#- name: Debian
|
|
||||||
# versions:
|
|
||||||
# - all
|
|
||||||
# - etch
|
|
||||||
# - jessie
|
|
||||||
# - lenny
|
|
||||||
# - squeeze
|
|
||||||
# - wheezy
|
|
||||||
#
|
|
||||||
# Below are all categories currently available. Just as with
|
|
||||||
# the platforms above, uncomment those that apply to your role.
|
|
||||||
#
|
|
||||||
categories:
|
categories:
|
||||||
#- cloud
|
|
||||||
#- cloud:ec2
|
|
||||||
#- cloud:gce
|
|
||||||
#- cloud:rax
|
|
||||||
#- clustering
|
|
||||||
#- database
|
|
||||||
#- database:nosql
|
|
||||||
#- database:sql
|
|
||||||
#- development
|
|
||||||
#- monitoring
|
|
||||||
#- networking
|
|
||||||
#- packaging
|
|
||||||
- system
|
- system
|
||||||
#- web
|
|
||||||
dependencies: []
|
dependencies: []
|
||||||
# List your role dependencies here, one per line.
|
# List your role dependencies here, one per line.
|
||||||
# Be sure to remove the '[]' above if you add dependencies
|
# Be sure to remove the '[]' above if you add dependencies
|
||||||
|
|||||||
+11
-7
@@ -1,19 +1,23 @@
|
|||||||
---
|
---
|
||||||
- name: centos | installing lvm2
|
- name: centos | installing lvm2
|
||||||
yum:
|
yum:
|
||||||
name: lvm2
|
name: "lvm2"
|
||||||
state: present
|
state: "present"
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: centos | installing sg3_utils
|
- name: centos | installing sg3_utils
|
||||||
yum:
|
yum:
|
||||||
name: sg3_utils
|
name: "sg3_utils"
|
||||||
state: present
|
state: "present"
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: centos | checking for scsi devices
|
- name: centos | checking for scsi devices
|
||||||
shell: sg_scan
|
shell: "sg_scan"
|
||||||
register: scsi_devices
|
become: true
|
||||||
|
register: "scsi_devices"
|
||||||
changed_when: False
|
changed_when: False
|
||||||
|
|
||||||
- name: centos | rescanning for new disks
|
- 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
|
changed_when: False
|
||||||
|
|||||||
+11
-8
@@ -2,18 +2,21 @@
|
|||||||
- name: debian | installing pre-reqs
|
- name: debian | installing pre-reqs
|
||||||
apt:
|
apt:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: present
|
state: "present"
|
||||||
|
become: true
|
||||||
with_items:
|
with_items:
|
||||||
- lvm2
|
- 'lvm2'
|
||||||
- scsitools
|
- 'scsitools'
|
||||||
- xfsprogs
|
- 'xfsprogs'
|
||||||
|
|
||||||
- name: debian | checking for scsi devices
|
- name: debian | checking for scsi devices
|
||||||
shell: sg_scan
|
shell: "sg_scan"
|
||||||
register: scsi_devices
|
become: true
|
||||||
|
register: "scsi_devices"
|
||||||
changed_when: False
|
changed_when: False
|
||||||
|
|
||||||
- name: debian | rescanning for new disks added
|
- name: debian | rescanning for new disks added
|
||||||
command: /sbin/rescan-scsi-bus
|
command: "/sbin/rescan-scsi-bus"
|
||||||
|
become: true
|
||||||
changed_when: False
|
changed_when: False
|
||||||
when: scsi_devices.stdout != ""
|
when: scsi_devices['stdout'] != ""
|
||||||
|
|||||||
+3
-1
@@ -7,4 +7,6 @@
|
|||||||
when: ansible_os_family == "RedHat"
|
when: ansible_os_family == "RedHat"
|
||||||
|
|
||||||
- include: manage_lvm.yml
|
- include: manage_lvm.yml
|
||||||
when: manage_lvm is defined and manage_lvm
|
when: >
|
||||||
|
manage_lvm and
|
||||||
|
lvm_groups is defined
|
||||||
|
|||||||
+105
-36
@@ -1,93 +1,162 @@
|
|||||||
---
|
---
|
||||||
- name: manage_lvm | creating new LVM volume group(s)
|
- name: manage_lvm | creating new LVM volume group(s)
|
||||||
lvg:
|
lvg:
|
||||||
vg: "{{ item.vgname }}"
|
vg: "{{ item['vgname'] }}"
|
||||||
pvs: "{{ item.disks }}"
|
pvs: "{{ item['disks']|join(',') }}"
|
||||||
state: present
|
state: "present"
|
||||||
|
become: true
|
||||||
with_items: "{{ lvm_groups }}"
|
with_items: "{{ lvm_groups }}"
|
||||||
when: item.create is defined and item.create
|
when: >
|
||||||
|
(item['create'] is defined and
|
||||||
|
item['create'])
|
||||||
|
|
||||||
- name: manage_lvm | creating new LVM logical volume(s)
|
- name: manage_lvm | creating new LVM logical volume(s)
|
||||||
lvol:
|
lvol:
|
||||||
vg: "{{ item.0.vgname }}"
|
vg: "{{ item[0]['vgname'] }}"
|
||||||
lv: "{{ item.1.lvname }}"
|
lv: "{{ item[1]['lvname'] }}"
|
||||||
size: "{{ item.1.size }}"
|
size: "{{ item[1]['size'] }}"
|
||||||
shrink: no
|
shrink: no
|
||||||
state: present
|
opts: "{{ item[1]['opts'] | default('') }}"
|
||||||
|
state: "present"
|
||||||
|
become: true
|
||||||
register: lvm
|
register: lvm
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- 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 )
|
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)
|
- name: manage_lvm | creating new filesystem on new LVM logical volume(s)
|
||||||
filesystem:
|
filesystem:
|
||||||
fstype: "{{ item.1.filesystem }}"
|
fstype: "{{ item[1]['filesystem'] }}"
|
||||||
dev: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
|
dev: "/dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }}"
|
||||||
# resizefs: yes #coming in 2.0 which will replace the resizing filesystem task below
|
# resizefs: yes #coming in 2.0 which will replace the resizing filesystem task below
|
||||||
|
become: true
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- 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 )
|
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]['filesystem'] is defined and
|
||||||
|
item[1]['filesystem'] != 'None'))
|
||||||
|
|
||||||
- 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') }}"
|
||||||
|
become: true
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- 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 )
|
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
|
- name: manage_lvm | resizing filesystem
|
||||||
command: resize2fs /dev/{{ item.0.vgname }}/{{ item.1.lvname }}
|
command: resize2fs /dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }}
|
||||||
|
become: true
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- lvnames
|
||||||
when: lvm.changed and item.1.filesystem != "swap" and item.1.filesystem != "xfs"
|
when: >
|
||||||
|
lvm['changed'] and
|
||||||
|
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"
|
||||||
|
|
||||||
- name: manage_lvm | resizing xfs
|
- name: manage_lvm | resizing xfs
|
||||||
command: xfs_growfs -d /dev/{{ item.0.vgname }}/{{ item.1.lvname }}
|
command: xfs_growfs -d /dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }}
|
||||||
|
become: true
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- lvnames
|
||||||
when: lvm.changed and item.1.filesystem == "xfs"
|
when: >
|
||||||
|
lvm['changed'] and
|
||||||
|
item[1]['filesystem'] is defined and
|
||||||
|
item[1]['filesystem'] == "xfs"
|
||||||
|
|
||||||
- name: manage_lvm | resizing swap
|
- name: manage_lvm | resizing swap
|
||||||
shell: "swapoff -a && mkswap /dev/{{ item.0.vgname }}/{{ item.1.lvname }} && swapon -va"
|
shell: "swapoff -a && mkswap /dev/{{ item[0]['vgname'] }}/{{ item[1]['lvname'] }} && swapon -va"
|
||||||
|
become: true
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- lvnames
|
||||||
when: lvm.changed and item.1.filesystem == "swap"
|
when: >
|
||||||
|
lvm['changed'] and
|
||||||
|
item[1]['filesystem'] is defined and
|
||||||
|
item[1]['filesystem'] == "swap"
|
||||||
|
|
||||||
|
- name: manage_lvm | resizing btrfs
|
||||||
|
shell: "btrfs filesystem resize max {{ item[1]['mntp'] }}"
|
||||||
|
become: true
|
||||||
|
with_subelements:
|
||||||
|
- "{{ lvm_groups }}"
|
||||||
|
- lvnames
|
||||||
|
when: >
|
||||||
|
lvm['changed'] and
|
||||||
|
item[1]['filesystem'] is defined and
|
||||||
|
item[1]['filesystem'] == "btrfs"
|
||||||
|
|
||||||
- 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 }}"
|
fstype: "{{ item[1]['filesystem'] | default(omit) }}"
|
||||||
state: absent
|
state: "absent"
|
||||||
|
become: true
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- lvnames
|
||||||
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 and
|
||||||
|
item[1] != 'None') and
|
||||||
|
(item[1]['create'] is defined and
|
||||||
|
not item[1]['create'])
|
||||||
|
|
||||||
- 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
|
||||||
with_subelements:
|
with_subelements:
|
||||||
- "{{ lvm_groups }}"
|
- "{{ lvm_groups }}"
|
||||||
- lvnames
|
- lvnames
|
||||||
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 and
|
||||||
|
item[1] != 'None') and
|
||||||
|
(item[1]['create'] is defined and
|
||||||
|
not item[1]['create'])
|
||||||
|
|
||||||
- name: manage_lvm | Removing LVM volume group(s)
|
- name: manage_lvm | Removing LVM volume group(s)
|
||||||
lvg:
|
lvg:
|
||||||
vg: "{{ item.vgname }}"
|
vg: "{{ item['vgname'] }}"
|
||||||
pvs: "{{ item.disks }}"
|
pvs: "{{ item['disks']|join(',') }}"
|
||||||
state: absent
|
state: "absent"
|
||||||
|
become: true
|
||||||
with_items: "{{ lvm_groups }}"
|
with_items: "{{ lvm_groups }}"
|
||||||
when: item.create is defined and not item.create
|
when: >
|
||||||
|
item['create'] is defined and
|
||||||
|
not item['create']
|
||||||
|
|||||||
Reference in New Issue
Block a user