Skip to content

Instantly share code, notes, and snippets.

@mrlesmithjr
Last active May 29, 2017 19:56
Show Gist options
  • Save mrlesmithjr/1da992b648771b9afd50 to your computer and use it in GitHub Desktop.
Save mrlesmithjr/1da992b648771b9afd50 to your computer and use it in GitHub Desktop.
---
- hosts: db-vms # set to specific inventory host group or set to all for every host in inventory for play
vars:
config_lvm: false # must be set to true in order to execute any tasks in play (failsafe option :)- )
create: false # set to true if creating a new logical volume (do not set extend or resize to true)
resize: false # set to true if resizing the logical volume (do not set create to true)
extend: false # set to true if extending the logical volume (do not set create to true)
current_disk: '/dev/sda5' # set to your current disk device already setup in lvm
new_disk: '/dev/sdb' # set to new disk being added to volume group
new_mntp: '/var/lib/mysql' # set to the desired mount point to be created and new logical volume to be mounted to
create_vgname: 'mysql-vg' # set to volume group name to create
resize_vgname: 'test-vg' # set to volume group name to resize
extend_vgname: 'test-vg' # set to volume group name to extend
create_lvname: 'mysql-lv' # set to logical volume name to create
resize_lvname: 'test-lv' # set to logical volume name to resize
extend_lvname: 'test-lv' # set to logical volume name to extend
create_lvsize: '100%FREE' # set to logical volume size to create --- (10G) - would create new lvm with 10Gigabytes -- (512) - would create new lvm with 512m
extend_disks: '{{ current_disk }},{{ new_disk }}' # first disk is current volume group
lvextend_options: '-L+10G' # setting the options to pass to lvextend --- ('-L+10G') - would increase by 10GB whereas ('-l +100%FREE') would increase to full capacity
filesystem: 'ext4' # set to filesystem type to format new logical volume with ( ext3, ext4, xfs, etc. )
tasks:
- name: installing lvm2
apt: name=lvm2 state=present
when: config_lvm and ansible_os_family == "Debian"
- name: installing lvm2
yum: name=system-storage-manager state=present
when: config_lvm and ansible_os_family == "RedHat"
- name: installing scsitools
apt: name=scsitools state=present
when: config_lvm and ansible_os_family == "Debian"
- name: installing sg3_utils
yum: name=sg3_utils state=present
when: config_lvm and ansible_os_family == "RedHat"
- name: rescanning for new disks
command: /sbin/rescan-scsi-bus
when: config_lvm and ansible_os_family == "Debian"
- name: rescanning for new disks
command: /usr/bin/rescan-scsi-bus.sh
when: config_lvm and ansible_os_family == "RedHat"
- name: creating new LVM volume group
lvg: vg={{ create_vgname }} pvs={{ new_disk }} state=present
when: create and config_lvm
- name: creating new LVM logical volume
lvol: vg={{ create_vgname }} lv={{ create_lvname }} size={{ create_lvsize }}
when: create and config_lvm
- name: creating new filesystem on new LVM logical volume
filesystem: fstype={{ filesystem }} dev=/dev/{{ create_vgname }}/{{ create_lvname }}
when: create and config_lvm
- name: mounting new filesystem
mount: name={{ new_mntp }} src=/dev/{{ create_vgname }}/{{ create_lvname }} fstype={{ filesystem }} state=mounted
when: create and config_lvm
- name: extending existing LVM volume group
lvg: vg={{ extend_vgname }} pvs={{ extend_disks }}
when: extend and config_lvm
- name: extending existing filesystem
command: lvextend {{ lvextend_options }} /dev/{{ extend_vgname }}/{{ extend_lvname }}
when: extend and config_lvm
- name: resizing filesystem
command: resize2fs /dev/{{ resize_vgname }}/{{ resize_lvname }}
when: resize and config_lvm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment