1--- 2- name: 'Create a "disk" file' 3 community.general.filesize: 4 path: '{{ image_file }}' 5 size: '{{ fssize }}M' 6 force: true 7 8- vars: 9 dev: '{{ image_file }}' 10 block: 11 - when: fstype == 'lvm' 12 block: 13 - name: 'Create a loop device for LVM' 14 ansible.builtin.command: 15 cmd: 'losetup --show -f {{ dev }}' 16 register: loop_device_cmd 17 18 - name: 'Switch to loop device target for further tasks' 19 ansible.builtin.set_fact: 20 dev: "{{ loop_device_cmd.stdout }}" 21 22 - when: fstype == 'ufs' 23 block: 24 - name: 'Create a memory disk for UFS' 25 ansible.builtin.command: 26 cmd: 'mdconfig -a -f {{ dev }}' 27 register: memory_disk_cmd 28 29 - name: 'Switch to memory disk target for further tasks' 30 ansible.builtin.set_fact: 31 dev: "/dev/{{ memory_disk_cmd.stdout }}" 32 33 - include_tasks: '{{ action }}.yml' 34 35 always: 36 - name: 'Detach loop device used for LVM' 37 ansible.builtin.command: 38 cmd: 'losetup -d {{ dev }}' 39 removes: '{{ dev }}' 40 when: fstype == 'lvm' 41 42 - name: 'Detach memory disk used for UFS' 43 ansible.builtin.command: 44 cmd: 'mdconfig -d -u {{ dev }}' 45 removes: '{{ dev }}' 46 when: fstype == 'ufs' 47 48 - name: 'Clean correct device for LVM and UFS' 49 ansible.builtin.set_fact: 50 dev: '{{ image_file }}' 51 when: fstype in ['lvm', 'ufs'] 52 53 - name: 'Remove disk image file' 54 ansible.builtin.file: 55 name: '{{ image_file }}' 56 state: absent 57