--- - 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 }}" ...