Skip to content

Commit c4021e4

Browse files
Minor growroot.yml fixes
1 parent 8275a08 commit c4021e4

File tree

1 file changed

+37
-47
lines changed

1 file changed

+37
-47
lines changed

etc/kayobe/ansible/growroot.yml

Lines changed: 37 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
# Don't assume facts are present.
2929
os_family: "{{ ansible_facts.os_family | default('Debian' if os_distribution == 'ubuntu' else 'RedHat') }}"
3030
# LVM override
31-
skip_lvm_check: false
31+
growroot_skip_lvm_check: false
3232

3333
tasks:
3434
- name: Check LVM status
@@ -41,56 +41,46 @@
4141
become: true
4242

4343
- block:
44-
- name: Check if growpart is installed
45-
shell:
46-
cmd: type growpart
47-
changed_when: false
48-
failed_when: false
49-
check_mode: false
50-
register: growpart_check
51-
become: true
44+
- name: Ensure growpart is installed
45+
package:
46+
name: "{% if os_family == 'RedHat' %}cloud-utils-growpart{% else %}cloud-guest-utils{% endif %}"
47+
state: present
48+
cache_valid_time: "{{ apt_cache_valid_time if os_family == 'Debian' else omit }}"
49+
update_cache: "{{ True if os_family == 'Debian' else omit }}"
50+
become: true
5251

53-
- name: Ensure growpart is installed
54-
package:
55-
name: "{% if os_family == 'RedHat' %}cloud-utils-growpart{% else %}cloud-guest-utils{% endif %}"
56-
state: present
57-
cache_valid_time: "{{ apt_cache_valid_time if os_family == 'Debian' else omit }}"
58-
update_cache: "{{ True if os_family == 'Debian' else omit }}"
59-
become: True
60-
when: growpart_check.rc != 0
52+
- name: Get root PV device
53+
command: "pvs --select vg_name={{ growroot_vg }} --reportformat json"
54+
register: pvs
55+
become: true
56+
changed_when: false
57+
check_mode: false
6158

62-
- name: Get root PV device
63-
command: "pvs --select vg_name={{ growroot_vg }} --reportformat json"
64-
register: pvs
65-
become: True
66-
changed_when: False
67-
check_mode: false
59+
- name: Fail if root PV device not found
60+
fail:
61+
msg: >
62+
Expected LVM physical volume devices not found in volume group {{ growroot_vg }}
63+
when: (pvs.stdout | from_json).report[0].pv | length == 0
6864

69-
- name: Fail if root PV device not found
70-
fail:
71-
msg: >
72-
Expected LVM physical volume devices not found in volume group {{ growroot_vg }}
73-
when: (pvs.stdout | from_json).report[0].pv | length == 0
65+
- name: Grow partition
66+
command: "growpart {{ disk }} {{ part_num }}"
67+
vars:
68+
pv: "{{ pvs.stdout | from_json }}"
69+
disk_tmp: "{{ pv.report[0].pv[0].pv_name[:-1] }}"
70+
disk: "{{ disk_tmp[:-1] if disk_tmp[-1] == 'p' else disk_tmp }}"
71+
part_num: "{{ pv.report[0].pv[0].pv_name[-1] }}"
72+
become: true
73+
failed_when: "growpart.rc != 0 and 'NOCHANGE' not in growpart.stdout"
74+
changed_when: "'NOCHANGE' not in growpart.stdout"
75+
register: growpart
7476

75-
- name: Grow partition
76-
command: "growpart {{ disk }} {{ part_num }}"
77-
vars:
78-
pv: "{{ pvs.stdout | from_json }}"
79-
disk_tmp: "{{ pv.report[0].pv[0].pv_name[:-1] }}"
80-
disk: "{{ disk_tmp[:-1] if disk_tmp[-1] == 'p' else disk_tmp }}"
81-
part_num: "{{ pv.report[0].pv[0].pv_name[-1] }}"
82-
become: True
83-
failed_when: "growpart.rc != 0 and 'NOCHANGE' not in growpart.stdout"
84-
changed_when: "'NOCHANGE' not in growpart.stdout"
85-
register: growpart
86-
87-
- name: Grow LVM PV
88-
command: "pvresize {{ disk }}"
89-
vars:
90-
pv: "{{ pvs.stdout | from_json }}"
91-
disk: "{{ pv.report[0].pv[0].pv_name }}"
92-
become: True
93-
when: lvm_check.rc != 1 or {{ skip_lvm_check }}
77+
- name: Grow LVM PV
78+
command: "pvresize {{ disk }}"
79+
vars:
80+
pv: "{{ pvs.stdout | from_json }}"
81+
disk: "{{ pv.report[0].pv[0].pv_name }}"
82+
become: true
83+
when: lvm_check.rc != 1 or growroot_skip_lvm_check
9484
# when: "'NOCHANGE' not in growpart.stdout"
9585
# Commenting out the conditional because growpart is already triggered by cloud-init - hence it emits NOCHANGE
9686
# Cloud-Inits growpart implementation has a bug https://bugzilla.redhat.com/show_bug.cgi?id=2122575

0 commit comments

Comments
 (0)