add make_lv role
This commit is contained in:
60
roles/make_lv/molecule/default/converge.yml
Normal file
60
roles/make_lv/molecule/default/converge.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
pre_tasks:
|
||||
- name: Get /root/image.img stats
|
||||
ansible.builtin.stat:
|
||||
path: /root/image.img
|
||||
register: img_stat
|
||||
|
||||
- name: Create image file
|
||||
when: not img_stat.stat.exists
|
||||
ansible.builtin.command: dd if=/dev/zero of=/root/image.img bs=1M count=128
|
||||
register: dd_result
|
||||
changed_when: dd_result.rc == 0
|
||||
|
||||
- name: Get linked loop devices
|
||||
ansible.builtin.command: losetup -a
|
||||
changed_when: false
|
||||
register: loop_devs
|
||||
|
||||
- name: Link image to loop device
|
||||
when: "'/root/image.img' not in loop_devs.stdout"
|
||||
ansible.builtin.command: losetup --find --show -P /root/image.img
|
||||
register: loop_device
|
||||
changed_when: "'/dev/loop' in loop_device.stdout"
|
||||
|
||||
- name: Get all loop devices
|
||||
ansible.builtin.command: losetup -a
|
||||
register: losetup_out
|
||||
changed_when: false
|
||||
|
||||
- name: Find line with /root/image.img
|
||||
ansible.builtin.set_fact:
|
||||
matched_line: "{{ losetup_out.stdout_lines
|
||||
| select('search', '/root/image.img')
|
||||
| list
|
||||
| first
|
||||
| default('') }}"
|
||||
|
||||
- name: Extract loop device name (/dev/loopN)
|
||||
ansible.builtin.set_fact:
|
||||
loop_dev: "{{ matched_line | regex_search('(/dev/loop[0-9]+)', '\\1') | default('') }}"
|
||||
|
||||
- name: Debug result
|
||||
ansible.builtin.debug:
|
||||
msg: "/root/image.img is linked to {{ loop_dev[0] }}"
|
||||
when: loop_dev != ''
|
||||
|
||||
roles:
|
||||
- role: genlab.make_lv
|
||||
virtual_group: "group"
|
||||
logical_volume: "volume"
|
||||
lvm_dev: "{{ loop_dev[0] }}"
|
||||
size: 100%FREE
|
||||
fs_type: ext4
|
||||
storage_mountpoint: "/mnt"
|
||||
storage_mountpoint_mode: "0755"
|
||||
mountpoint_owner: root
|
||||
mountpoint_group: root
|
||||
is_container: true
|
||||
Reference in New Issue
Block a user