fix playbook workflow
This commit is contained in:
parent
7fa8bf1923
commit
70dcc9d3f1
@ -6,35 +6,42 @@
|
|||||||
strategy: free
|
strategy: free
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
bigboot_size_target: 1G
|
bigboot_size_target: 2G
|
||||||
|
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Capture boot device details
|
- name: Capture boot device details
|
||||||
ansible.builtin.import_tasks: tasks/capture_boot_device_details.yml
|
ansible.builtin.import_tasks: tasks/capture_boot_device_details.yml
|
||||||
|
|
||||||
- name: Shrink a logical volume for /boot expansion if needed
|
- name: Shrink a logical volume for /boot expansion if needed
|
||||||
ansible.builtin.import_tasks: tasks/bigboot_manage_lv-op.yml
|
ansible.builtin.import_tasks: tasks/capture_lv_device_details.yml
|
||||||
|
|
||||||
|
|
||||||
- name: Import hi playbook
|
- name: Import hi playbook
|
||||||
ansible.builtin.import_playbook: rhc.rear.hi
|
ansible.builtin.import_playbook: rhc.rear.hi
|
||||||
when: bigboot_expansion_diff | int > 0
|
when: bigboot_execute_bigboot | bool
|
||||||
|
|
||||||
|
|
||||||
- name: Expand the /boot partition
|
- name: Execute logical volume and boot parition resizing
|
||||||
hosts: all
|
hosts: all
|
||||||
become: true
|
become: true
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
strategy: free
|
strategy: free
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Something should go here
|
- name: Execute Shrink_LV
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "Something should go here -> {{ bigboot_size }} -> {{ bigboot_expansion_diff }}"
|
msg:
|
||||||
|
- "device: {{ bigboot_adjacent_lvm_device | trim }}"
|
||||||
|
- "size : {{ bigboot_lv_shrink_size | int }}"
|
||||||
|
when: bigboot_execute_shrink_lv | bool
|
||||||
|
|
||||||
- name: Execute Shrink_LV/Bigboot as needed
|
- name: Execute Bigboot as needed
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "we made it {{ bigboot_adjacent_lvm_device }} -> {{ bigboot_lv_pe_size_in_mb }}"
|
msg: "{{ bigboot_size }}"
|
||||||
|
when: bigboot_execute_bigboot | bool
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# - name: Execute Shrink_LV/Bigboot as needed
|
# - name: Execute Shrink_LV/Bigboot as needed
|
||||||
# when: bigboot_expansion_diff | int <= 0
|
# when: bigboot_expansion_diff | int <= 0
|
||||||
|
@ -31,16 +31,21 @@
|
|||||||
|
|
||||||
- name: Validate if we need to expand boot
|
- name: Validate if we need to expand boot
|
||||||
block:
|
block:
|
||||||
|
- name: Set flag for Bigboot execution
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_execute_bigboot: false
|
||||||
|
|
||||||
- name: Assert that /boot requires expansion
|
- name: Assert that /boot requires expansion
|
||||||
ansible.builtin.assert:
|
ansible.builtin.assert:
|
||||||
that: bigboot_expansion_diff | int <= 0
|
that: bigboot_expansion_diff | int <= 0
|
||||||
fail_msg: The /boot partition will need to be resized
|
fail_msg: The /boot partition will need to be resized
|
||||||
success_msg: The /boot partition is already at the desired size
|
success_msg: The /boot partition is already at the desired size
|
||||||
|
|
||||||
- name: The /boot parition is already at the desired size.
|
|
||||||
ansible.builtin.meta: end_host
|
|
||||||
|
|
||||||
rescue:
|
rescue:
|
||||||
|
- name: Set flag for Bigboot execution
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_execute_bigboot: true
|
||||||
|
|
||||||
- name: Expansion of /boot required
|
- name: Expansion of /boot required
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "Will need to expand /boot by an additional {{ bigboot_size }}."
|
msg: "Will need to expand /boot by an additional {{ bigboot_size }}."
|
||||||
|
80
tasks/capture_lv_device_details.yml
Normal file
80
tasks/capture_lv_device_details.yml
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
- name: Capture logical volume adjacent to /boot
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: |
|
||||||
|
set -o pipefail
|
||||||
|
lsblk -p -o name,type|grep lvm|head -1
|
||||||
|
executable: /bin/bash
|
||||||
|
changed_when: false
|
||||||
|
register: bigboot_adjacent_lvm
|
||||||
|
|
||||||
|
- name: Set adjacent LVM device name
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_adjacent_lvm_device: "{{ bigboot_adjacent_lvm.stdout | regex_replace('.*(/dev.*)\\s+.*$', '\\1') }}"
|
||||||
|
|
||||||
|
- name: Get logical volume mount information
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_lv_info: "{{ ansible_facts.mounts \
|
||||||
|
| selectattr('device', 'equalto', bigboot_adjacent_lvm_device | trim) | first }}"
|
||||||
|
|
||||||
|
- name: Assert that there is space on the logical volume for shrinkage
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that: bigboot_lv_info.size_available > bigboot_expansion_diff | int
|
||||||
|
fail_msg: There is not enough space available for LV shrinking.
|
||||||
|
|
||||||
|
- name: Capture shrink size for logical volume
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_lv_shrink_size: "{{ bigboot_lv_info.size_total - bigboot_expansion_diff | int }}"
|
||||||
|
|
||||||
|
- name: Capture logical volume name
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: |
|
||||||
|
set -o pipefail
|
||||||
|
lvdisplay {{ bigboot_adjacent_lvm_device }} | grep -i 'vg name'
|
||||||
|
executable: /bin/bash
|
||||||
|
changed_when: false
|
||||||
|
register: bigboot_lv_vg_name
|
||||||
|
|
||||||
|
- name: Format logical volume name
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_lv_vg_name: "{{ bigboot_lv_vg_name.stdout | regex_replace('VG\\s+Name\\s+(.*)$', '\\1') }}"
|
||||||
|
|
||||||
|
- name: Capture volume group free PE
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: |
|
||||||
|
set -o pipefail
|
||||||
|
vgdisplay {{ bigboot_lv_vg_name | trim }} | grep -i 'free'
|
||||||
|
executable: /bin/bash
|
||||||
|
changed_when: false
|
||||||
|
register: bigboot_lv_vg_free_pe
|
||||||
|
|
||||||
|
- name: Format logical volume free PE
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
# Ex:
|
||||||
|
# Free PE / Size 320 / 1.25 GiB"
|
||||||
|
# Free PE / Size 189 / 756.00 MiB"
|
||||||
|
# Free PE / Size 414 / <1.62 GiB
|
||||||
|
# Free PE / Size 0 / 0
|
||||||
|
bigboot_lv_vg_free_pe: "{{ bigboot_lv_vg_free_pe.stdout | regex_replace('^.*/.*/\\s+[<]?(.*)', '\\1') }}"
|
||||||
|
|
||||||
|
- name: Get size in MB for PE and
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_lv_pe_size_in_mb:
|
||||||
|
"{{ bigboot_lv_vg_free_pe | regex_replace('i|\\s+|<', '') | human_to_bytes | human_readable(unit='M') }}"
|
||||||
|
|
||||||
|
- name: Verify if there's available PE or not and execute Shrink_LV
|
||||||
|
block:
|
||||||
|
- name: Set flag for Shrink_LV execution
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_execute_shrink_lv: false
|
||||||
|
|
||||||
|
- name: Assert if we need to execute the shrink_lv role to gain free PE
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that: (bigboot_lv_pe_size_in_mb[:-3] | int | round) | int > bigboot_size[:-1] | int
|
||||||
|
fail_msg: Not enough PE to expand /boot.
|
||||||
|
|
||||||
|
rescue:
|
||||||
|
- name: Set flag for Shrink_LV execution
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
bigboot_execute_shrink_lv: true
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user