Skip to content

Commit 9453282

Browse files
authored
Merge pull request #611 from stackhpc/aio-script-lvm-fix
Fix for ci-aio automated deploy on non-lvm images
2 parents a0dee41 + 886161d commit 9453282

File tree

1 file changed

+52
-39
lines changed

1 file changed

+52
-39
lines changed

etc/kayobe/ansible/growroot.yml

Lines changed: 52 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -27,57 +27,70 @@
2727
growroot_vg: "rootvg"
2828
# Don't assume facts are present.
2929
os_family: "{{ ansible_facts.os_family | default('Debian' if os_distribution == 'ubuntu' else 'RedHat') }}"
30+
# Ignore LVM check
31+
growroot_ignore_lvm_check: false
3032

3133
tasks:
32-
- name: Check if growpart is installed
34+
- name: Check LVM status
3335
shell:
34-
cmd: type growpart
36+
cmd: vgdisplay | grep -q lvm2
3537
changed_when: false
3638
failed_when: false
3739
check_mode: false
38-
register: growpart_check
40+
register: lvm_check
3941
become: true
4042

41-
- name: Ensure growpart is installed
42-
package:
43-
name: "{% if os_family == 'RedHat' %}cloud-utils-growpart{% else %}cloud-guest-utils{% endif %}"
44-
state: present
45-
cache_valid_time: "{{ apt_cache_valid_time if os_family == 'Debian' else omit }}"
46-
update_cache: "{{ True if os_family == 'Debian' else omit }}"
47-
become: True
48-
when: growpart_check.rc != 0
43+
- 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
4952

50-
- name: Get root PV device
51-
command: "pvs --select vg_name={{ growroot_vg }} --reportformat json"
52-
register: pvs
53-
become: True
54-
changed_when: False
55-
check_mode: false
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
61+
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
5668

57-
- name: Fail if root PV device not found
58-
fail:
59-
msg: >
60-
Expected LVM physical volume devices not found in volume group {{ growroot_vg }}
61-
when: (pvs.stdout | from_json).report[0].pv | length == 0
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
6274

63-
- name: Grow partition
64-
command: "growpart {{ disk }} {{ part_num }}"
65-
vars:
66-
pv: "{{ pvs.stdout | from_json }}"
67-
disk_tmp: "{{ pv.report[0].pv[0].pv_name[:-1] }}"
68-
disk: "{{ disk_tmp[:-1] if disk_tmp[-1] == 'p' else disk_tmp }}"
69-
part_num: "{{ pv.report[0].pv[0].pv_name[-1] }}"
70-
become: True
71-
failed_when: "growpart.rc != 0 and 'NOCHANGE' not in growpart.stdout"
72-
changed_when: "'NOCHANGE' not in growpart.stdout"
73-
register: growpart
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
7486

75-
- name: Grow LVM PV
76-
command: "pvresize {{ disk }}"
77-
vars:
78-
pv: "{{ pvs.stdout | from_json }}"
79-
disk: "{{ pv.report[0].pv[0].pv_name }}"
80-
become: True
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 == 0 or growroot_ignore_lvm_check
8194
# when: "'NOCHANGE' not in growpart.stdout"
8295
# Commenting out the conditional because growpart is already triggered by cloud-init - hence it emits NOCHANGE
8396
# Cloud-Inits growpart implementation has a bug https://bugzilla.redhat.com/show_bug.cgi?id=2122575

0 commit comments

Comments
 (0)