refactor(partitioning): split monolithic main.yml into focused task files
This commit is contained in:
121
roles/partitioning/tasks/_create_partitions.yml
Normal file
121
roles/partitioning/tasks/_create_partitions.yml
Normal file
@@ -0,0 +1,121 @@
|
||||
---
|
||||
- name: Partition install drive
|
||||
block:
|
||||
- name: Prepare partitions
|
||||
block:
|
||||
- name: Disable swap
|
||||
ansible.builtin.command: swapoff -a
|
||||
register: partitioning_swapoff_result
|
||||
changed_when: partitioning_swapoff_result.rc == 0
|
||||
failed_when: false
|
||||
|
||||
- name: Find mounts under /mnt
|
||||
ansible.builtin.command: findmnt -R /mnt -n -o TARGET
|
||||
register: partitioning_mounted_paths
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Unmount /mnt mounts
|
||||
when: partitioning_mounted_paths.stdout_lines | length > 0
|
||||
ansible.posix.mount:
|
||||
path: "{{ item }}"
|
||||
state: unmounted
|
||||
loop: "{{ partitioning_mounted_paths.stdout_lines | reverse }}"
|
||||
loop_control:
|
||||
label: "{{ item }}"
|
||||
failed_when: false
|
||||
|
||||
- name: Remove LVM volume group
|
||||
community.general.lvg:
|
||||
vg: "{{ partitioning_vg_name }}"
|
||||
state: absent
|
||||
force: true
|
||||
failed_when: false
|
||||
|
||||
- name: Close LUKS mapper
|
||||
when: system_cfg.luks.enabled | bool
|
||||
community.crypto.luks_device:
|
||||
name: "{{ system_cfg.luks.mapper }}"
|
||||
state: closed
|
||||
failed_when: false
|
||||
|
||||
- name: Remove LUKS mapper device
|
||||
when: system_cfg.luks.enabled | bool
|
||||
ansible.builtin.command: >-
|
||||
dmsetup remove --force --retry {{ system_cfg.luks.mapper }}
|
||||
register: partitioning_dmsetup_remove
|
||||
changed_when: partitioning_dmsetup_remove.rc == 0
|
||||
failed_when: false
|
||||
|
||||
- name: Remove LUKS signatures
|
||||
when: system_cfg.luks.enabled | bool
|
||||
community.crypto.luks_device:
|
||||
device: "{{ partitioning_luks_device }}"
|
||||
state: absent
|
||||
failed_when: false
|
||||
|
||||
- name: Wipe filesystem signatures
|
||||
ansible.builtin.shell: >-
|
||||
find /dev -wholename "{{ install_drive }}*" -exec wipefs --force --all {} \;
|
||||
register: partitioning_wipefs_result
|
||||
changed_when: partitioning_wipefs_result.rc == 0
|
||||
failed_when: false
|
||||
|
||||
- name: Refresh kernel partition table
|
||||
ansible.builtin.command: "{{ item }}"
|
||||
loop:
|
||||
- "partprobe {{ install_drive }}"
|
||||
- "blockdev --rereadpt {{ install_drive }}"
|
||||
- "udevadm settle"
|
||||
register: partitioning_partprobe_result
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Define partitions
|
||||
block:
|
||||
- name: Create partition layout
|
||||
community.general.parted:
|
||||
device: "{{ install_drive }}"
|
||||
label: gpt
|
||||
number: "{{ item.number }}"
|
||||
part_end: "{{ item.part_end | default(omit) }}"
|
||||
part_start: "{{ item.part_start | default(omit) }}"
|
||||
name: "{{ item.name }}"
|
||||
flags: "{{ item.flags | default(omit) }}"
|
||||
state: present
|
||||
loop: "{{ partitioning_layout }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
rescue:
|
||||
- name: Refresh kernel partition table after failure
|
||||
ansible.builtin.command: "{{ item }}"
|
||||
loop:
|
||||
- "partprobe {{ install_drive }}"
|
||||
- "blockdev --rereadpt {{ install_drive }}"
|
||||
- "udevadm settle"
|
||||
register: partitioning_partprobe_retry
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Retry partition layout
|
||||
community.general.parted:
|
||||
device: "{{ install_drive }}"
|
||||
label: gpt
|
||||
number: "{{ item.number }}"
|
||||
part_end: "{{ item.part_end | default(omit) }}"
|
||||
part_start: "{{ item.part_start | default(omit) }}"
|
||||
name: "{{ item.name }}"
|
||||
flags: "{{ item.flags | default(omit) }}"
|
||||
state: present
|
||||
loop: "{{ partitioning_layout }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
|
||||
- name: Settle partition table
|
||||
ansible.builtin.command: "{{ item }}"
|
||||
loop:
|
||||
- "partprobe {{ install_drive }}"
|
||||
- "udevadm settle"
|
||||
register: partitioning_partprobe_settle
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
Reference in New Issue
Block a user