70 lines
2.5 KiB
YAML
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
|