shrink_lv/bigboot_execute_resize.yml

70 lines
2.5 KiB
YAML

---
- name: Perform logical volume and boot parition resizing as needed
hosts: all
become: true
gather_facts: true
strategy: free
vars_files:
- bigboot_vars.yml
tasks:
- name: Perform filesystem check prior to Bigboot execution
ansible.builtin.import_tasks: tasks/grub_filesystem_check.yml
when:
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | default(false) | bool
- name: Shrink the logical volume to support /boot expansion
ansible.builtin.import_role:
name: infra.lvm_snapshots.shrink_lv
vars:
shrink_lv_devices:
- device: "{{ bigboot_data[inventory_hostname]['bigboot_adjacent_lvm_device'] }}"
size: "{{ bigboot_data[inventory_hostname]['bigboot_lv_shrink_size'] | int }}"
when:
- bigboot_data[inventory_hostname]['bigboot_execute_shrink_lv'] | default(false) | bool
- name: Shift free extents and expand /boot
when:
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool
block:
# Under normal circumstances we'd use this method, but unable to do
# so in certain environments so lets use copy/command instead
# - name: Shift free extents to end of PV
# ansible.builtin.script: "scripts/pvsqueeze.sh {{ bigboot_data[inventory_hostname]['bigboot_pv'] }}"
# register: bigboot_pvsqueeze
- name: Copy pvsqueeze.sh script to host
ansible.builtin.copy:
src: scripts/pvsqueeze.sh
dest: /var/tmp/pvsqueeze.sh
owner: root
group: root
mode: '0700'
- name: Shift free extents to end of PV
ansible.builtin.command:
cmd: "/var/tmp/pvsqueeze.sh {{ bigboot_data[inventory_hostname]['bigboot_pv'] }}"
register: bigboot_pvsqueeze
- name: Remove pvsqueeze.sh from host
ansible.builtin.file:
path: /var/tmp/pvsqueeze.sh
state: absent
- name: Expand the /boot partition as requested
ansible.builtin.import_role:
name: infra.lvm_snapshots.bigboot
vars:
bigboot_partition_size: "{{ bigboot_data[inventory_hostname]['bigboot_size_target'] }}"
- name: Failure on request
ansible.builtin.fail:
msg: "Ansible job has been failed upon request."
when:
- bigboot_fail_request | default(false) | bool
rescue:
- name: Cleanup from any previous executions
ansible.builtin.import_tasks: tasks/cleanup.yml