shrink_lv/bigboot_execute_resize.yml

65 lines
2.4 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: Extend the timeout values for physical hosts
ansible.builtin.set_fact:
initramfs_post_reboot_delay: 300
initramfs_reboot_timeout: 14400
when:
- "'host' in ansible_virtualization_role"
- 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 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 via pvsqueeze.sh
ansible.builtin.command:
cmd: "/var/tmp/pvsqueeze.sh {{ bigboot_data[inventory_hostname]['bigboot_pv'] }}"
register: bigboot_pvsqueeze
- name: Expand the /boot partition as requested
ansible.builtin.import_role:
name: infra.lvm_snapshots.bigboot
vars:
bigboot_partition_size: "{{ bigboot_size_target }}"
- name: Restore service state for disabled services
ansible.builtin.import_tasks: tasks/restore_services.yml