diff --git a/.ansible-lint b/.ansible-lint index c907879..d8dc293 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -4,3 +4,4 @@ skip_list: - yaml[line-length] - no-changed-when - run-once[play] + - name[template] diff --git a/preflight.yml b/preflight.yml new file mode 100644 index 0000000..58382d3 --- /dev/null +++ b/preflight.yml @@ -0,0 +1,123 @@ +--- +- 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', '(?Psd.*)', '\\g' + '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 }}" + + +... diff --git a/tasks/capture_lv_device_details.yml b/tasks/capture_lv_device_details.yml index 86a01ad..09128bb 100644 --- a/tasks/capture_lv_device_details.yml +++ b/tasks/capture_lv_device_details.yml @@ -3,7 +3,8 @@ ansible.builtin.shell: cmd: | set -o pipefail - lsblk -pl -o name,type,mountpoint | grep -vi swap | grep lvm | head -1 | awk '{ print $1}' + lsblk -pl -o name,type,mountpoint {{ bigboot_boot_mount['device'][:-1] }} \ + | grep -vi swap | grep lvm | head -1 | awk '{ print $1}' executable: /bin/bash changed_when: false register: bigboot_adjacent_lvm