52 lines
1.8 KiB
YAML
52 lines
1.8 KiB
YAML
---
|
|
- name: Get /boot mount information
|
|
ansible.builtin.set_fact:
|
|
bigboot_boot_mount: "{{ ansible_facts.mounts \
|
|
| selectattr('mount', 'equalto', '/boot') | first }}"
|
|
|
|
- name: Capture device for /boot
|
|
ansible.builtin.set_fact:
|
|
bigboot_boot_device: "{{ bigboot_boot_mount.device | regex_replace('^.*/(\\w+$)', '\\1') }}"
|
|
|
|
- name: Capture partition size for /boot parition
|
|
ansible.builtin.set_fact:
|
|
bigboot_boot_partsize: "{{ ansible_devices[bigboot_boot_device[:-1]].partitions[bigboot_boot_device].size }}"
|
|
|
|
- name: Display current parition size for /boot
|
|
ansible.builtin.debug:
|
|
msg: "/boot ({{ bigboot_boot_mount.device }}): {{ bigboot_boot_partsize }}"
|
|
|
|
- name: Capture required expansion space
|
|
ansible.builtin.set_fact:
|
|
bigboot_expansion_diff:
|
|
"{{ bigboot_partition_size | human_to_bytes - bigboot_boot_partsize | human_to_bytes }}"
|
|
|
|
- name: Convert size difference to MB
|
|
ansible.builtin.set_fact:
|
|
bigboot_size_expansion_mb: "{{ bigboot_expansion_diff | int | human_readable(unit='M') }}"
|
|
|
|
- name: Set bigboot size 4k aligned
|
|
ansible.builtin.set_fact:
|
|
bigboot_size: "{{ bigboot_size_expansion_mb[:-2] | int | get_block_size_up }}"
|
|
|
|
- name: Validate if we need to expand boot
|
|
block:
|
|
- name: Set flag for Bigboot execution
|
|
ansible.builtin.set_fact:
|
|
bigboot_execute_bigboot: false
|
|
|
|
- name: Assert that /boot requires expansion
|
|
ansible.builtin.assert:
|
|
that: bigboot_expansion_diff | int <= 0
|
|
fail_msg: The /boot partition will need to be resized
|
|
success_msg: The /boot partition is already at the desired size
|
|
|
|
rescue:
|
|
- name: Set flag for Bigboot execution
|
|
ansible.builtin.set_fact:
|
|
bigboot_execute_bigboot: true
|
|
|
|
- name: Expansion of /boot required
|
|
ansible.builtin.debug:
|
|
msg: "Will need to expand /boot by an additional {{ bigboot_size }}."
|