|
63 | 63 | state: present
|
64 | 64 | become: true
|
65 | 65 |
|
| 66 | + - name: Ensure uuid-runtime is present (Ubuntu) |
| 67 | + ansible.builtin.package: |
| 68 | + name: uuid-runtime |
| 69 | + state: present |
| 70 | + become: true |
| 71 | + when: ansible_facts['distribution'] == "Ubuntu" |
| 72 | + |
66 | 73 | - name: Ensure `source` directory exists
|
67 | 74 | ansible.builtin.file:
|
68 | 75 | path: "{{ src_directory }}"
|
69 | 76 | state: directory
|
70 | 77 | mode: "0755"
|
71 | 78 |
|
| 79 | + - name: Revert TLS changes to avoid git conflicts (upgrade) |
| 80 | + ansible.builtin.shell: |
| 81 | + cmd: >- |
| 82 | + if [[ -f {{ kayobe_environment_path }}/kolla/globals-tls-config.yml ]]; then |
| 83 | + sed -i 's/^kolla_enable_tls_internal: true/# kolla_enable_tls_internal: true/g' {{ kayobe_environment_path }}/kolla.yml |
| 84 | + fi |
| 85 | + when: upgrade | bool |
| 86 | + vars: |
| 87 | + kayobe_environment_path: "{{ src_directory }}/kayobe-config/etc/kayobe/environments/{{ kayobe_config_environment }}" |
| 88 | + |
| 89 | + - name: Stash Kayobe Config changes (upgrade) |
| 90 | + ansible.builtin.command: |
| 91 | + cmd: git stash |
| 92 | + chdir: "{{ src_directory }}/{{ kayobe_config_name }}" |
| 93 | + when: upgrade | bool |
| 94 | + |
72 | 95 | - name: Ensure Kayobe Config repository is present
|
73 | 96 | ansible.builtin.git:
|
74 | 97 | repo: "{{ kayobe_config_repo }}"
|
75 | 98 | version: "{{ kayobe_config_version }}"
|
76 | 99 | dest: "{{ src_directory }}/{{ kayobe_config_name }}"
|
77 |
| - update: false |
| 100 | + update: "{{ upgrade | bool }}" |
| 101 | + |
| 102 | + - name: Pop stashed Kayobe Config changes (upgrade) |
| 103 | + ansible.builtin.command: |
| 104 | + cmd: git stash pop |
| 105 | + chdir: "{{ src_directory }}/{{ kayobe_config_name }}" |
| 106 | + when: upgrade | bool |
| 107 | + |
| 108 | + - name: Replace TLS changes to avoid git conflicts (upgrade) |
| 109 | + ansible.builtin.shell: |
| 110 | + cmd: >- |
| 111 | + if [[ -f {{ kayobe_environment_path }}/kolla/globals-tls-config.yml ]]; then |
| 112 | + sed -i 's/# kolla_enable_tls_internal: true/kolla_enable_tls_internal: true/g' {{ kayobe_environment_path }}/kolla.yml |
| 113 | + fi |
| 114 | + when: upgrade | bool |
| 115 | + vars: |
| 116 | + kayobe_environment_path: "{{ src_directory }}/kayobe-config/etc/kayobe/environments/{{ kayobe_config_environment }}" |
78 | 117 |
|
79 | 118 | - name: Ensure hooks directory are present
|
80 | 119 | ansible.builtin.file:
|
|
103 | 142 | - { src: fix-networking.yml, dest: infra-vm-host-configure/pre.d/15-fix-networking.yml }
|
104 | 143 | - { src: configure-vxlan.yml, dest: infra-vm-host-configure/pre.d/20-configure-vxlan.yml }
|
105 | 144 |
|
106 |
| - |
107 | 145 | - name: Ensure Admin Overcloud Network file is present
|
108 | 146 | ansible.builtin.copy:
|
109 | 147 | src: "files/admin-oc-networks.yml"
|
|
116 | 154 | dest: "{{ src_directory }}/{{ kayobe_config_name }}/etc/kayobe/environments/{{ kayobe_config_environment }}/inventory/hosts"
|
117 | 155 | mode: "0644"
|
118 | 156 |
|
| 157 | + - name: Ensure multinode.sh script is present |
| 158 | + ansible.builtin.copy: |
| 159 | + src: "files/multinode.sh" |
| 160 | + dest: "/usr/local/bin/multinode.sh" |
| 161 | + mode: "0755" |
| 162 | + become: true |
| 163 | + tags: |
| 164 | + - multinode.sh |
| 165 | + |
119 | 166 | - name: Ensure root_domain is defined
|
120 | 167 | ansible.builtin.lineinfile:
|
121 | 168 | path: "{{ src_directory }}/{{ kayobe_config_name }}/etc/kayobe/environments/{{ kayobe_config_environment }}/inventory/group_vars/all/main.yml"
|
|
162 | 209 | repo: "{{ kayobe_repo }}"
|
163 | 210 | version: "{{ kayobe_version or 'stackhpc/' ~ openstack_release.stdout }}"
|
164 | 211 | dest: "{{ src_directory }}/{{ kayobe_name }}"
|
165 |
| - update: false |
| 212 | + update: "{{ upgrade | bool }}" |
166 | 213 | when: kayobe_src_required
|
167 | 214 |
|
| 215 | + - name: Ensure `venvs` directory is absent (upgrade) |
| 216 | + ansible.builtin.file: |
| 217 | + path: "{{ ansible_env.HOME }}/venvs" |
| 218 | + state: absent |
| 219 | + when: upgrade | bool |
| 220 | + |
168 | 221 | - name: Ensure `venvs` directory exists
|
169 | 222 | ansible.builtin.file:
|
170 | 223 | path: "{{ ansible_env.HOME }}/venvs"
|
|
231 | 284 | key: "{{ item }}"
|
232 | 285 | loop: "{{ extra_ssh_public_keys }}"
|
233 | 286 |
|
| 287 | + - name: "{% if upgrade | bool %}Upgrade{% else %}Bootstrap{% endif %} control host" |
| 288 | + ansible.builtin.shell: |
| 289 | + cmd: |- |
| 290 | + set -eu |
| 291 | + source {{ ansible_env.HOME }}/venvs/kayobe/bin/activate |
| 292 | + source {{ src_directory }}/{{ kayobe_config_name }}/kayobe-env --environment {{ kayobe_config_environment }} |
| 293 | + export KAYOBE_VAULT_PASSWORD="$(cat ~/vault.password)" |
| 294 | + kayobe control host {% if upgrade | bool %}upgrade{% else %}bootstrap{% endif %} |
| 295 | +
|
234 | 296 | - name: Ensure OpenStack Config repository is present
|
235 | 297 | ansible.builtin.git:
|
236 | 298 | repo: "{{ openstack_config_repo }}"
|
|
278 | 340 | dest: "{{ src_directory }}/{{ openstack_config_name }}/ansible/inventory"
|
279 | 341 | mode: 0644
|
280 | 342 |
|
281 |
| - - name: Ensure `deploy-openstack.sh` script is present |
282 |
| - ansible.builtin.copy: |
283 |
| - src: "files/deploy-openstack.sh" |
284 |
| - dest: "{{ ansible_env.HOME }}/deploy-openstack.sh" |
285 |
| - mode: "755" |
286 |
| - tags: deploy-openstack |
287 |
| - |
288 | 343 | - name: Ensure docker repository is present
|
289 | 344 | ansible.builtin.command:
|
290 | 345 | cmd: dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
|
0 commit comments