cleaned up and fixed all tasks including swap

This commit is contained in:
Larry Smith Jr
2015-11-03 09:22:00 -05:00
parent 9f5c61e255
commit 686455514d
7 changed files with 89 additions and 111 deletions

View File

@@ -1,42 +1,62 @@
Role Name
=========
Role to manage LVM Groups/Logical Volumes. Can be used to create, extend or resize LVM.
Role to manage LVM Groups/Logical Volumes. Can be used to create, extend or resize LVM Groups and volumes.
Requirements
------------
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.
##### Creating LVM
###### /dev/sda5
##### Extending LVM
###### Current disk /dev/sda5
###### New Disk /dev/sdb
Role Variables
--------------
````
---
# defaults file for ansible-manage-lvm
create_lvm: false #defines if lvm should be created when adding additional disks...should be defined in host_vars/host (do not set extend or resize to true)
create_lvname: test-lv #define lvm name when adding additional disks...should be defined in host_vars/host
create_lvsize: 100%FREE #defines the lvm lv size --- (10G) - would create new lvm with 10Gigabytes -- (512) - would create new lvm with 512m
create_vgname: test-vg #defines the lvm vg name to create...
extend_lvm: false #defines if lvm vg should be extended (do not set create to true)...should be defined in host_vars/host
extend_lvname: test-lv #defines the lvm lv name to extend...should be defined in host_vars/host
extend_vgname: test-vg #defines the lvm vg name to extend...should be defined in host_vars/host
lvextend_options: '-L+10G' #defines the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
lvm_current_disk: /dev/sda5 #defines the disk currently configured for lvm...should be defined in host_vars/host
lvm_extend_disks: '{{ lvm_current_disk }},{{ lvm_new_disk }}' #defines the disks to extend in lvm group...should be defined in host_vars/host
lvm_filesystem: ext4 #defines the filesystem type to create when configuring lvm ( ext3, ext4, xfs, etc. )...should be defined in host_vars/host
lvm_new_disk: /dev/sdb #defines the new disk being added to volume group...should be defined in host_vars/host
lvm_new_mntp: /mnt/test #defines the desired mount point to be created and new logical volume to be mounted to...should be defined in host_vars/host
resize_lvm: false #set to true if resizing the logical volume (do not set create to true)...should be defined in host_vars/host
resize_lvname: test-lv #defines the logical volume name to resize...should be defined in host_vars/host
resize_vgname: test-vg #defines the volume group name to resize...should be defined in host_vars/host
lvm_groups:
- vgname: ubuntu-vg
disks: /dev/sda5,/dev/sdc,/dev/sdd #for multiple disks...../dev/sdb,/dev/sdc
create: true #defines if VG should exist or be removed....true or false
lvnames:
- lvname: swap_1
size: 5g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
create: true #defines if lvol should exist or be removed...true or false
filesystem: swap #defines filesystem to format lvol as
mount: false #defines if filesystem should be mounted
mntp: [] #defines mountpoint for lvol
extend: false #defines if lvol should be extended..ex. after adding additional disks to VG
lvextend_options: -L+10G #defines the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
resize: false
- lvname: root
size: 40g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
create: true #defines if lvol should exist or be removed...true or false
filesystem: ext4 #defines filesystem to format lvol as
mount: true
mntp: / #defines mountpoint for lvol
extend: true #defines if lvol should be extended..ex. after adding additional disks to VG
lvextend_options: -L+5G #defines the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
resize: true
- vgname: test-vg
disks: /dev/sdb #for multiple disks...../dev/sdb,/dev/sdc
create: true #defines if VG should exist or be removed....true or false
lvnames:
- lvname: test_1
size: 5g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
create: true #defines if lvol should exist or be removed...true or false
filesystem: ext4 #defines filesystem to format lvol as
mount: true #defines if filesystem should be mounted
mntp: /mnt/test_1 #defines mountpoint for lvol
extend: false #defines if lvol should be extended..ex. after adding additional disks to VG
lvextend_options: -L+10G #defines the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
resize: true
- lvname: test_2
size: 10g #define size of lvol...100%FREE, 10g, 1024 (megabytes by default)
create: true #defines if lvol should exist or be removed...true or false
filesystem: ext4 #defines filesystem to format lvol as
mount: true
mntp: /mnt/test_2 #defines mountpoint for lvol
extend: false #defines if lvol should be extended..ex. after adding additional disks to VG
lvextend_options: -L+10G #defines the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
resize: true
````
Dependencies

View File

@@ -1,22 +1,5 @@
---
# defaults file for ansible-manage-lvm
create_lvm: false #defines if lvm should be created when adding additional disks...should be defined in host_vars/host (do not set extend or resize to true)
create_lvname: test-lv #define lvm name when adding additional disks...should be defined in host_vars/host
create_lvsize: 100%FREE #defines the lvm lv size --- (10G) - would create new lvm with 10Gigabytes -- (512) - would create new lvm with 512m
create_vgname: test-vg #defines the lvm vg name to create...
extend_lvm: false #defines if lvm vg should be extended (do not set create to true)...should be defined in host_vars/host
extend_lvname: test-lv #defines the lvm lv name to extend...should be defined in host_vars/host
extend_vgname: test-vg #defines the lvm vg name to extend...should be defined in host_vars/host
lvextend_options: '-L+10G' #defines the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
lvm_current_disk: /dev/sda5 #defines the disk currently configured for lvm...should be defined in host_vars/host
lvm_extend_disks: '{{ lvm_current_disk }},{{ lvm_new_disk }}' #defines the disks to extend in lvm group...should be defined in host_vars/host
lvm_filesystem: ext4 #defines the filesystem type to create when configuring lvm ( ext3, ext4, xfs, etc. )...should be defined in host_vars/host
lvm_new_disk: /dev/sdb #defines the new disk being added to volume group...should be defined in host_vars/host
lvm_new_mntp: /mnt/test #defines the desired mount point to be created and new logical volume to be mounted to...should be defined in host_vars/host
resize_lvm: false #set to true if resizing the logical volume (do not set create to true)...should be defined in host_vars/host
resize_lvname: test-lv #defines the logical volume name to resize...should be defined in host_vars/host
resize_vgname: test-vg #defines the volume group name to resize...should be defined in host_vars/host
lvm_groups:
- vgname: ubuntu-vg
disks: /dev/sda5 #for multiple disks...../dev/sdb,/dev/sdc

View File

@@ -1,24 +0,0 @@
---
- name: create_lvm | creating new LVM volume group
lvg:
vg: "{{ create_vgname }}"
pvs: "{{ lvm_new_disk }}"
state: present
- name: create_lvm | creating new LVM logical volume
lvol:
vg: "{{ create_vgname }}"
lv: "{{ create_lvname }}"
size: "{{ create_lvsize }}"
- name: create_lvm | creating new filesystem on new LVM logical volume
filesystem:
fstype: "{{ lvm_filesystem }}"
dev: "/dev/{{ create_vgname }}/{{ create_lvname }}"
- name: create_lvm | mounting new filesystem
mount:
name: "{{ lvm_new_mntp }}"
src: "/dev/{{ create_vgname }}/{{ create_lvname }}"
fstype: "{{ lvm_filesystem }}"
state: mounted

View File

@@ -1,8 +0,0 @@
---
- name: extend_lvm | extending existing LVM volume group
lvg:
vg: "{{ extend_vgname }}"
pvs: "{{ lvm_extend_disks }}"
- name: extend_lvm | extending existing filesystem
command: lvextend {{ lvextend_options }} /dev/{{ extend_vgname }}/{{ extend_lvname }}

View File

@@ -6,13 +6,4 @@
- include: centos.yml
when: ansible_os_family == "RedHat"
#- include: create_lvm.yml
# when: create_lvm is defined and create_lvm
#- include: extend_lvm.yml
# when: extend_lvm is defined and extend_lvm
#- include: resize_lvm.yml
# when: resize_lvm is defined and resize_lvm
- include: manage_lvm.yml

View File

@@ -4,44 +4,26 @@
vg: "{{ item.vgname }}"
pvs: "{{ item.disks }}"
state: present
with_items:
- lvm_groups
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
register: lvm
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 }}"
# resizefs: yes #coming in 2.0 which will replace the resizing filesystem task below
with_subelements:
- lvm_groups
- lvnames
@@ -58,9 +40,46 @@
- 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 }}
- name: manage_lvm | resizing filesystem
command: resize2fs /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 )
when: lvm.changed and item.1.filesystem != "swap"
- name: manage_lvm | resizing swap
shell: "swapoff -a && mkswap /dev/{{ item.0.vgname }}/{{ item.1.lvname }} && swapon -va"
with_subelements:
- lvm_groups
- lvnames
when: lvm.changed and item.1.filesystem == "swap"
- name: manage_lvm | unmounting filesystem(s)
mount:
name: "{{ item.1.mntp }}"
src: "/dev/{{ item.0.vgname }}/{{ item.1.lvname }}"
fstype: "{{ item.1.filesystem }}"
state: absent
with_subelements:
- lvm_groups
- lvnames
when: ( item.1.create is defined and not item.1.create )
- name: manage_lvm | Removing LVM logical volume(s)
lvol:
vg: "{{ item.0.vgname }}"
lv: "{{ item.1.lvname }}"
state: absent
force: yes
with_subelements:
- lvm_groups
- lvnames
when: ( item.1.create is defined and not item.1.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

View File

@@ -1,3 +0,0 @@
---
- name: resize_lvm | resizing filesystem
command: resize2fs /dev/{{ resize_vgname }}/{{ resize_lvname }}