2021-02-03 07:54:04 +01:00
|
|
|
---
|
2022-08-05 14:03:38 +02:00
|
|
|
# Copyright (c) Ansible Project
|
|
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
2020-03-09 10:11:07 +01:00
|
|
|
- name: 'Create a "disk" file'
|
2021-05-18 06:46:45 +02:00
|
|
|
community.general.filesize:
|
|
|
|
path: '{{ image_file }}'
|
|
|
|
size: '{{ fssize }}M'
|
|
|
|
force: true
|
2020-03-09 10:11:07 +01:00
|
|
|
|
|
|
|
- vars:
|
|
|
|
dev: '{{ image_file }}'
|
|
|
|
block:
|
|
|
|
- when: fstype == 'lvm'
|
|
|
|
block:
|
2022-12-21 07:31:46 +01:00
|
|
|
- name: 'Show next free loop device'
|
2021-05-18 06:46:45 +02:00
|
|
|
ansible.builtin.command:
|
2022-12-21 07:31:46 +01:00
|
|
|
cmd: 'losetup -f'
|
2020-03-09 10:11:07 +01:00
|
|
|
register: loop_device_cmd
|
|
|
|
|
2022-12-21 07:31:46 +01:00
|
|
|
- name: 'Create a loop device for LVM'
|
|
|
|
ansible.builtin.command:
|
|
|
|
cmd: 'losetup -f {{ dev }}'
|
|
|
|
|
2021-05-18 06:46:45 +02:00
|
|
|
- name: 'Switch to loop device target for further tasks'
|
|
|
|
ansible.builtin.set_fact:
|
2020-03-09 10:11:07 +01:00
|
|
|
dev: "{{ loop_device_cmd.stdout }}"
|
|
|
|
|
2021-07-10 16:37:31 +02:00
|
|
|
- when: fstype == 'ufs'
|
|
|
|
block:
|
|
|
|
- name: 'Create a memory disk for UFS'
|
|
|
|
ansible.builtin.command:
|
|
|
|
cmd: 'mdconfig -a -f {{ dev }}'
|
|
|
|
register: memory_disk_cmd
|
|
|
|
|
|
|
|
- name: 'Switch to memory disk target for further tasks'
|
|
|
|
ansible.builtin.set_fact:
|
|
|
|
dev: "/dev/{{ memory_disk_cmd.stdout }}"
|
|
|
|
|
2020-03-09 10:11:07 +01:00
|
|
|
- include_tasks: '{{ action }}.yml'
|
|
|
|
|
|
|
|
always:
|
|
|
|
- name: 'Detach loop device used for LVM'
|
2021-05-18 06:46:45 +02:00
|
|
|
ansible.builtin.command:
|
|
|
|
cmd: 'losetup -d {{ dev }}'
|
2020-03-09 10:11:07 +01:00
|
|
|
removes: '{{ dev }}'
|
|
|
|
when: fstype == 'lvm'
|
|
|
|
|
2021-07-10 16:37:31 +02:00
|
|
|
- name: 'Detach memory disk used for UFS'
|
|
|
|
ansible.builtin.command:
|
|
|
|
cmd: 'mdconfig -d -u {{ dev }}'
|
|
|
|
removes: '{{ dev }}'
|
|
|
|
when: fstype == 'ufs'
|
|
|
|
|
|
|
|
- name: 'Clean correct device for LVM and UFS'
|
2021-05-18 06:46:45 +02:00
|
|
|
ansible.builtin.set_fact:
|
2020-03-09 10:11:07 +01:00
|
|
|
dev: '{{ image_file }}'
|
2021-07-10 16:37:31 +02:00
|
|
|
when: fstype in ['lvm', 'ufs']
|
2020-03-09 10:11:07 +01:00
|
|
|
|
2021-05-18 06:46:45 +02:00
|
|
|
- name: 'Remove disk image file'
|
|
|
|
ansible.builtin.file:
|
2020-03-09 10:11:07 +01:00
|
|
|
name: '{{ image_file }}'
|
|
|
|
state: absent
|