shrink_lv/preflight.yml

124 lines
2.9 KiB
YAML

---
- name: Create VG and LVOL for shrink_lv testing
hosts: all
become: true
gather_facts: true
vars:
__part_size: 20GB
__partition_devices:
- /dev/vdb
- /dev/vdc
- /dev/vdd
- /dev/vde
- /dev/vdf
- /dev/vdg
- /dev/vdh
- /dev/vdi
- /dev/vdj
- /dev/vdk
- /dev/vdl
- /dev/vdm
- /dev/vdn
- /dev/vdo
- /dev/vdp
- /dev/sdb
- /dev/sdc
- /dev/sdd
- /dev/sde
- /dev/sdf
- /dev/sdg
- /dev/sdh
- /dev/sdi
- /dev/sdj
- /dev/sdk
- /dev/sdl
- /dev/sdm
- /dev/sdn
- /dev/sdo
- /dev/sdp
__vg_name : test-vg
__lv_name : test-lv
__lv_size : 18g
__lv_mount : "/data/{{ __lv_name }}"
__lv_fstype : ext4
tasks:
- name: Debug __partition_devices
ansible.builtin.debug:
msg:
- "{{ __partition_devices }}"
- "{{ __partition_devices | join(',') }}"
- "{{ __partition_devices | \
map('regex_replace', '(?P<device>sd.*)', '\\g<device>' + '1', multiline=True) }}"
verbosity: 1
- name: Install LVM2
ansible.builtin.package:
name : lvm2
state : present
- name: Debug __partition_devices
ansible.builtin.debug:
msg: "{{ item }}1 :: {{ item | split('/') | last }}"
verbosity: 1
loop: "{{ __partition_devices }}"
- name: Create partitions on all drives
community.general.parted:
device : "{{ item }}"
number : 1
flags : ['lvm']
state : present
part_end : "{{ __part_size }}"
loop: "{{ __partition_devices }}"
- name: Create VGs on LVM devices
community.general.lvg:
vg : "{{ __vg_name }}-{{ item | split('/') | last }}"
pvs : "{{ item }}1"
loop: "{{ __partition_devices }}"
- name: Create LV
community.general.lvol:
vg : "{{ __vg_name }}-{{ item | split('/') | last }}"
lv : "{{ __lv_name }}-{{ item | split('/') | last }}"
size : "{{ __lv_size }}"
force : true
loop: "{{ __partition_devices }}"
- name: Create lvol mount point
ansible.builtin.file:
path : "{{ __lv_mount }}-{{ item | split('/') | last }}"
state : directory
mode : "0755"
loop: "{{ __partition_devices }}"
- name: Create filesystems
community.general.filesystem:
dev : "/dev/{{ __vg_name }}-{{ item | split('/') | last }}/{{ __lv_name }}-{{ item | split('/') | last }}"
fstype : "{{ __lv_fstype }}"
loop: "{{ __partition_devices }}"
- name: Mount data
ansible.posix.mount:
path : "{{ __lv_mount }}-{{ item | split('/') | last }}"
src : "/dev/{{ __vg_name }}-{{ item | split('/') | last }}/{{ __lv_name }}-{{ item | split('/') | last }}"
fstype : "{{ __lv_fstype }}"
state : mounted
loop: "{{ __partition_devices }}"
...