From cbd597f395f2080dd2b2a77c4d12afb922b246eb Mon Sep 17 00:00:00 2001 From: Kristine Bujold Date: Wed, 6 Nov 2019 11:23:19 -0500 Subject: [PATCH] Refactor Ansible sysinv data collection This commit refactors ansible to use the sysinv-utils for generating overrides files. It also updates CLIs to use command arguments instead of using grep/awk. The current model can easily beak if for example a column is added to the outputted data. Story: 2006590 Task: 36892 Depends-On: https://review.opendev.org/693213/ Signed-off-by: Kristine Bujold Change-Id: Ife65cd95c0f7c0ec431a9298965acab50aac11d7 --- playbookconfig/centos/build_srpm.data | 2 +- .../roles/backup/backup-system/tasks/main.yml | 289 +----------------- .../bringup-essential-services/tasks/main.yml | 8 +- .../bootstrap/persist-config/tasks/main.yml | 11 +- .../tasks/get_docker_registry.yml | 13 +- .../prepare-env/tasks/main.yml | 11 +- .../restore-openstack/restore/tasks/main.yml | 31 +- .../restore-more-data/tasks/main.yml | 13 +- .../playbooks/test/tc_recover_ceph_data.yml | 2 +- .../src/playbooks/upgrade-k8s-networking.yml | 35 +-- 10 files changed, 67 insertions(+), 348 deletions(-) diff --git a/playbookconfig/centos/build_srpm.data b/playbookconfig/centos/build_srpm.data index 2b82f98a7..76e75eaa9 100644 --- a/playbookconfig/centos/build_srpm.data +++ b/playbookconfig/centos/build_srpm.data @@ -1,2 +1,2 @@ SRC_DIR="src" -TIS_PATCH_VER=6 +TIS_PATCH_VER=7 diff --git a/playbookconfig/src/playbooks/roles/backup/backup-system/tasks/main.yml b/playbookconfig/src/playbooks/roles/backup/backup-system/tasks/main.yml index 7d6c08f61..16ca5b600 100644 --- a/playbookconfig/src/playbooks/roles/backup/backup-system/tasks/main.yml +++ b/playbookconfig/src/playbooks/roles/backup/backup-system/tasks/main.yml @@ -135,22 +135,17 @@ when: check_mariadb_pod.rc == 0 - block: - - name: Check if stx-openstack is applied - shell: >- - source /etc/platform/openrc; system application-list | grep stx-openstack | grep applied - failed_when: false - register: check_openstack_applied - - name: Check if stx-openstack is uploaded + - name: Get stx-openstack status shell: >- - source /etc/platform/openrc; system application-list | grep stx-openstack | grep uploaded + source /etc/platform/openrc; system application-show stx-openstack --column status --format value failed_when: false - register: check_openstack_uploaded + register: openstack_status - name: Fail the backup if MariaDB is not running fail: msg: "WARNING: {{ mariadb_pod }} is not running. Cannot backup mariadb data." - when: check_openstack_applied.rc == 0 + when: openstack_status.stdout == "applied" when: check_mariadb_pod.rc != 0 # Now Postgres data and MariaDB data are stored in staging dir, we can estimate @@ -230,233 +225,12 @@ set_fact: override_backup_file: "{{ override_dir.path }}/{{ host_override_backup_file }}" - - name: Retrieve dns_servers from sysinv db - shell: "source /etc/platform/openrc; system dns-show | grep nameservers | awk '{print $4}'" - register: dns_servers + - name: Create the override backup file + command: "/usr/bin/sysinv-utils create-host-overrides {{ override_backup_file }}" + failed_when: result.stderr != "" + register: result - - name: Create and write dns_servers into override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: "dns_servers:" - create: yes - - - name: Write each dns server into override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: " - {{ item }}" - with_items: "{{ dns_servers.stdout.split(',') }}" - - - name: Query addrpool in sysinv db - shell: - source /etc/platform/openrc; system addrpool-list --nowrap > {{ tempdir.path }}/addrpool.txt - - - name: Retrieve pxeboot_subnet from sysinv db - shell: "grep pxeboot {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: pxeboot_subnet - - - name: Retrieve pxeboot_start_address from sysinv db - shell: - "grep pxeboot {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}'" - register: pxeboot_start_address - - - name: Retrieve pxeboot_end_address from sysinv db - shell: >- - grep pxeboot {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: pxeboot_end_address - - - name: Retrieve pxeboot_floating_address from sysinv db - shell: "grep pxeboot {{ tempdir.path }}/addrpool.txt | awk '{print $14}'" - register: pxeboot_floating_address - - - name: Retrieve pxeboot_controller0_address from sysinv db - shell: "grep pxeboot {{ tempdir.path }}/addrpool.txt | awk '{print $16}'" - register: pxeboot_controller0_address - - - name: Retrieve pxeboot_controller1_address from sysinv db - shell: "grep pxeboot {{ tempdir.path }}/addrpool.txt | awk '{print $18}'" - register: pxeboot_controller1_address - - - name: Retrieve management_subnet from sysinv db - shell: "grep management {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: management_subnet - - - name: Retrieve management_start_address from sysinv db - shell: - "grep management {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}'" - register: management_start_address - - - name: Retrieve management_end_address from sysinv db - shell: >- - grep management {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: management_end_address - - - name: Retrieve management_floating_address from sysinv db - shell: "grep management {{ tempdir.path }}/addrpool.txt | awk '{print $14}'" - register: management_floating_address - - - name: Retrieve management_controller0_address from sysinv db - shell: "grep management {{ tempdir.path }}/addrpool.txt | awk '{print $16}'" - register: management_controller0_address - - - name: Retrieve management_controller1_address from sysinv db - shell: "grep management {{ tempdir.path }}/addrpool.txt | awk '{print $18}'" - register: management_controller1_address - - - name: Retrieve management_multicast_subnet from sysinv db - shell: "grep multicast-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: management_multicast_subnet - - - name: Retrieve management_multicast_start_address from sysinv db - shell: - "grep multicast-subnet {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}'" - register: management_multicast_start_address - - - name: Retrieve management_multicast_end_address from sysinv db - shell: >- - grep multicast-subnet {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: management_multicast_end_address - - - name: Retrieve cluster_host_subnet from sysinv db - shell: - "grep cluster-host-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: cluster_host_subnet - - - name: Retrieve cluster_host_start_address from sysinv db - shell: - "grep cluster-host-subnet {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}'" - register: cluster_host_start_address - - - name: Retrieve cluster_host_end_address from sysinv db - shell: >- - grep cluster-host-subnet {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: cluster_host_end_address - - - name: Retrieve cluster_host_floating_address from sysinv db - shell: "grep cluster-host-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $14}'" - register: cluster_host_floating_address - - - name: Retrieve cluster_host_controller0_address from sysinv db - shell: "grep cluster-host-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $16}'" - register: cluster_host_controller0_address - - - name: Retrieve cluster_host_controller1_address from sysinv db - shell: "grep cluster-host-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $18}'" - register: cluster_host_controller1_address - - - name: Retrieve cluster_pod_subnet from sysinv db - shell: "grep cluster-pod-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: cluster_pod_subnet - - - name: Retrieve cluster_pod_start_address from sysinv db - shell: - "grep cluster-pod-subnet {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}'" - register: cluster_pod_start_address - - - name: Retrieve cluster_pod_end_address from sysinv db - shell: >- - grep cluster-pod-subnet {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: cluster_pod_end_address - - - name: Retrieve cluster_service_subnet from sysinv db - shell: "grep cluster-service-subnet {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: cluster_service_subnet - - - name: Retrieve cluster_service_start_address from sysinv db - shell: - grep cluster-service-subnet {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}' - register: cluster_service_start_address - - - name: Retrieve cluster_service_end_address from sysinv db - shell: >- - grep cluster-service-subnet {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: cluster_service_end_address - - - name: Retrieve external_oam_subnet from sysinv db - shell: "grep oam {{ tempdir.path }}/addrpool.txt | awk '{print $6\"/\"$8}'" - register: external_oam_subnet - - - name: Retrieve external_oam_start_address from sysinv db - shell: - "grep oam {{ tempdir.path }}/addrpool.txt | awk 'match($12, /-/) {print substr($12, 3, RSTART-3)}'" - register: external_oam_start_address - - - name: Retrieve external_oam_end_address from sysinv db - shell: >- - grep oam {{ tempdir.path }}/addrpool.txt | - awk 'split($12, array, "-") {print substr(array[2], 1, length(array[2])-2)}' - register: external_oam_end_address - - - name: Retrieve external_oam_gateway_address from sysinv db - shell: "grep oam {{ tempdir.path }}/addrpool.txt | awk '{print $20}'" - register: external_oam_gateway_address - - - name: Retrieve external_oam_floating_address from sysinv db - shell: "grep oam {{ tempdir.path }}/addrpool.txt | awk '{print $14}'" - register: external_oam_floating_address - - - block: - - name: Retrieve external_oam_controller0_address from sysinv db - shell: "grep oam {{ tempdir.path }}/addrpool.txt | awk '{print $16}'" - register: external_oam_controller0_address - - - name: Retrieve external_oam_controller1_address from sysinv db - shell: "grep oam {{ tempdir.path }}/addrpool.txt | awk '{print $18}'" - register: external_oam_controller1_address - - when: system_mode != 'simplex' - - - name: Write entries to override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: "{{ item }}" - with_items: - - "pxeboot_subnet: {{ pxeboot_subnet.stdout }}" - - "pxeboot_start_address: {{ pxeboot_start_address.stdout }}" - - "pxeboot_end_address: {{ pxeboot_end_address.stdout }}" - - "pxeboot_floating_address: {{ pxeboot_floating_address.stdout }}" - - "pxeboot_node_0_address: {{ pxeboot_controller0_address.stdout }}" - - "pxeboot_node_1_address: {{ pxeboot_controller1_address.stdout }}" - - "management_subnet: {{ management_subnet.stdout }}" - - "management_start_address: {{ management_start_address.stdout }}" - - "management_end_address: {{ management_end_address.stdout }}" - - "management_floating_address: {{ management_floating_address.stdout }}" - - "management_node_0_address: {{ management_controller0_address.stdout }}" - - "management_node_1_address: {{ management_controller1_address.stdout }}" - - "management_multicast_subnet: {{ management_multicast_subnet.stdout }}" - - "management_multicast_start_address: {{ management_multicast_start_address.stdout }}" - - "management_multicast_end_address: {{ management_multicast_end_address.stdout }}" - - "cluster_host_subnet: {{ cluster_host_subnet.stdout }}" - - "cluster_host_start_address: {{ cluster_host_start_address.stdout }}" - - "cluster_host_end_address: {{ cluster_host_end_address.stdout }}" - - "cluster_host_floating_address: {{ cluster_host_floating_address.stdout }}" - - "cluster_host_node_0_address: {{ cluster_host_controller0_address.stdout }}" - - "cluster_host_node_1_address: {{ cluster_host_controller1_address.stdout }}" - - "cluster_pod_subnet: {{ cluster_pod_subnet.stdout }}" - - "cluster_pod_start_address: {{ cluster_pod_start_address.stdout }}" - - "cluster_pod_end_address: {{ cluster_pod_end_address.stdout }}" - - "cluster_service_subnet: {{ cluster_service_subnet.stdout }}" - - "cluster_sevice_start_address: {{ cluster_service_start_address.stdout }}" - - "cluster_service_end_address: {{ cluster_service_end_address.stdout }}" - - "external_oam_subnet: {{ external_oam_subnet.stdout }}" - - "external_oam_start_address: {{ external_oam_start_address.stdout }}" - - "external_oam_end_address: {{ external_oam_end_address.stdout }}" - - "external_oam_gateway_address: {{ external_oam_gateway_address.stdout }}" - - "external_oam_floating_address: {{ external_oam_floating_address.stdout }}" - - - name: Write external_oam_node_x_address to override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: "{{ item }}" - with_items: - - "external_oam_node_0_address: {{ external_oam_controller0_address.stdout }}" - - "external_oam_node_1_address: {{ external_oam_controller1_address.stdout }}" - when: system_mode != 'simplex' + - debug: var=result.stdout - name: Get docker registries information include_role: @@ -469,47 +243,6 @@ marker: "" block: "{{ registries|default({}) | to_nice_yaml(indent=2) }}" - - name: Check if docker no-proxy exists - shell: >- - grep -w no_proxy {{ tempdir.path }}/docker.txt | - awk '{if ($8=="no_proxy") print $10}' - register: docker_no_proxy - failed_when: false - - - block: - - name: Write no_proxy into override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: "docker_no_proxy:" - - - name: Write each no_proxy address into override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: " - {{ item }}" - with_items: "{{ docker_no_proxy.stdout.split(',') }}" - - - name: Remove the open and close parenthesis around IPV6 address - command: sed -i -e 's/[][]//g' {{ override_backup_file }} - args: - warn: false - - when: docker_no_proxy.stdout != "" - - - name: Look for docker proxy entries - shell: >- - grep -w proxy {{ tempdir.path }}/docker.txt | grep -w -v no_proxy | - awk '{if ($6=="proxy") print "docker_" $8 ": " $10}' - register: check_docker_proxy - failed_when: false - - - block: - - name: Write docker proxy to override backup file - lineinfile: - dest: "{{ override_backup_file }}" - line: "{{ item }}" - with_items: "{{ check_docker_proxy.stdout }}" - when: check_docker_proxy.stdout != "" - - name: Attach timestamp to the platform backup filename set_fact: platform_backup_file: "{{ platform_backup_filename_prefix }}_{{ lookup('pipe', 'date +%Y_%m_%d_%H_%M_%S') }}.tgz" @@ -560,7 +293,7 @@ {{ mariadb_dir.path }} 2>/dev/null)" args: warn: false - when: check_mariadb_pod.rc == 0 or check_openstack_uploaded.rc == 0 + when: check_mariadb_pod.rc == 0 or openstack_status.stdout == "uploaded" - name: Notify the user backup tar file(s) are available debug: @@ -579,7 +312,7 @@ src: "{{ openstack_backup_file_path}}" dest: "{{ host_backup_dir }}/" flat: yes - when: check_mariadb_pod.rc == 0 or check_openstack_uploaded.rc == 0 + when: check_mariadb_pod.rc == 0 or openstack_status.stdout == "uploaded" - name: Notify the user where the backup tar file(s) can be found debug: diff --git a/playbookconfig/src/playbooks/roles/bootstrap/bringup-essential-services/tasks/main.yml b/playbookconfig/src/playbooks/roles/bootstrap/bringup-essential-services/tasks/main.yml index 427c7a2c9..9ee56d19b 100644 --- a/playbookconfig/src/playbooks/roles/bootstrap/bringup-essential-services/tasks/main.yml +++ b/playbookconfig/src/playbooks/roles/bootstrap/bringup-essential-services/tasks/main.yml @@ -78,11 +78,11 @@ line: "nameserver {{ controller_floating_address }}" insertbefore: BOF - - name: Check for controller-0 online status - shell: source /etc/platform/openrc; system host-list | grep online - register: online_check - until: online_check.rc == 0 + - name: Check controller-0 is in online state + shell: source /etc/platform/openrc; system host-show controller-0 --column availability --format value + register: check_online retries: 10 + until: check_online.stdout == "online" - name: Wait for {{ pods_wait_time }} seconds to ensure kube-system pods are all started wait_for: diff --git a/playbookconfig/src/playbooks/roles/bootstrap/persist-config/tasks/main.yml b/playbookconfig/src/playbooks/roles/bootstrap/persist-config/tasks/main.yml index ed093359e..974c64c12 100644 --- a/playbookconfig/src/playbooks/roles/bootstrap/persist-config/tasks/main.yml +++ b/playbookconfig/src/playbooks/roles/bootstrap/persist-config/tasks/main.yml @@ -96,12 +96,13 @@ - name: Find old registry secrets in Barbican shell: "{{ item }}" + failed_when: false with_items: - - "source /etc/platform/openrc; openstack secret list | grep k8s-registry-secret | awk '{print $2}'" - - "source /etc/platform/openrc; openstack secret list | grep gcr-registry-secret | awk '{print $2}'" - - "source /etc/platform/openrc; openstack secret list | grep quay-registry-secret | awk '{print $2}'" - - "source /etc/platform/openrc; openstack secret list | grep docker-registry-secret | awk '{print $2}'" - - "source /etc/platform/openrc; openstack secret list | grep elastic-registry-secret | awk '{print $2}'" + - "source /etc/platform/openrc; openstack secret list -c 'Secret href' -n k8s-registry-secret -f value" + - "source /etc/platform/openrc; openstack secret list -c 'Secret href' -n gcr-registry-secret -f value" + - "source /etc/platform/openrc; openstack secret list -c 'Secret href' -n quay-registry-secret -f value" + - "source /etc/platform/openrc; openstack secret list -c 'Secret href' -n docker-registry-secret -f value" + - "source /etc/platform/openrc; openstack secret list -c 'Secret href' -n elastic-registry-secret -f value" register: old_barbican_secrets - name: Delete old registry secrets in Barbican diff --git a/playbookconfig/src/playbooks/roles/common/push-docker-images/tasks/get_docker_registry.yml b/playbookconfig/src/playbooks/roles/common/push-docker-images/tasks/get_docker_registry.yml index c3d16c57b..95fba76f1 100644 --- a/playbookconfig/src/playbooks/roles/common/push-docker-images/tasks/get_docker_registry.yml +++ b/playbookconfig/src/playbooks/roles/common/push-docker-images/tasks/get_docker_registry.yml @@ -9,20 +9,19 @@ - block: - name: Query the {{ registry.name }} - shell: >- - source /etc/platform/openrc; system service-parameter-list --nowrap | - awk '{if ($6 == "{{ registry.name | regex_replace('_', '-') }}") print $8"="$10;}' + shell: source /etc/platform/openrc; + system service-parameter-list --section "{{ registry.name | regex_replace('_', '-') }}" + --column name --column value --format yaml register: running_registry_output - # Make sure variables are empty to allow succesive executions + # Make sure variables are empty to allow successive executions - set_fact: running_registry: { } registry_filtered: { } - set_fact: - running_registry: - "{{ running_registry | combine({inner_item.split('=')[0]:inner_item.split('=')[1]}, recursive=True) }}" - with_items: "{{ running_registry_output.stdout_lines }}" + running_registry: "{{ running_registry|default({}) | combine({inner_item.name:inner_item.value}) }}" + with_items: "{{ running_registry_output.stdout | from_yaml }}" loop_control: loop_var: inner_item diff --git a/playbookconfig/src/playbooks/roles/restore-openstack/prepare-env/tasks/main.yml b/playbookconfig/src/playbooks/roles/restore-openstack/prepare-env/tasks/main.yml index b30d51989..4bc8ada83 100644 --- a/playbookconfig/src/playbooks/roles/restore-openstack/prepare-env/tasks/main.yml +++ b/playbookconfig/src/playbooks/roles/restore-openstack/prepare-env/tasks/main.yml @@ -37,7 +37,7 @@ when: active_ctlr.rc != 0 - name: Search for stx-openstack application - shell: source /etc/platform/openrc; system application-list | grep 'stx-openstack' + shell: source /etc/platform/openrc; system application-show stx-openstack --column status --format value register: check_openstack failed_when: false @@ -49,7 +49,7 @@ backed up or it has already been restored successfully. - meta: end_play - when: check_openstack.rc != 0 or check_openstack.stdout is search('applied') + when: check_openstack.rc != 0 or check_openstack.stdout == "applied" # If stx-application is not in uploaded state, it means restore_openstack playbook # has been run and was not successful. Re-run the playbook is not supported. @@ -58,18 +58,17 @@ msg: >- stx-openstack application must be in ‘uploaded’ state for the restore to proceed. The restore must have failed already. - when: check_openstack.stdout is not search('uploaded') + when: check_openstack.stdout != "uploaded" - name: Check if platform-integ-apps was applied successfully during controller-0 unlock shell: >- - source /etc/platform/openrc; system application-list | - grep 'platform-integ-apps.*applied.*completed' + source /etc/platform/openrc; system application-show platform-integ-apps --column status --format value register: check_platform_integ - name: Fail if platform-integ-apps was not applied successfully fail: msg: Application platform-integ-apps was not applied successfully during controller-0 unlock - when: check_platform_integ.rc != 0 + when: check_platform_integ.stdout not in ['applied', 'completed'] - name: For remote play set target_backup_dir to {{ backup_dir }} set_fact: diff --git a/playbookconfig/src/playbooks/roles/restore-openstack/restore/tasks/main.yml b/playbookconfig/src/playbooks/roles/restore-openstack/restore/tasks/main.yml index 1115e7b1b..a3b4c46ba 100644 --- a/playbookconfig/src/playbooks/roles/restore-openstack/restore/tasks/main.yml +++ b/playbookconfig/src/playbooks/roles/restore-openstack/restore/tasks/main.yml @@ -25,17 +25,17 @@ shell: source /etc/platform/openrc; system application-apply --mode normal stx-openstack - name: Checking stx-openstack apply progress for the remaining Openstack services... (max 50 mins) - shell: source /etc/platform/openrc; system application-list | grep 'stx-openstack' + shell: >- + source /etc/platform/openrc; system application-show stx-openstack --column status --format value register: check_app_state - until: check_app_state.stdout is search('applied') or - check_app_state.stdout is search('apply-failed') + until: check_app_state.stdout in ['applied', 'apply-failed'] retries: 50 delay: 60 - name: Fail if the remaining Openstack services cannot be restored successfully fail: msg: stx-openstack application is not applied successfully. - when: check_app_state.stdout is not search('applied') + when: check_app_state.stdout != "applied" - name: Remove restore_openstack_in_progress flag file file: @@ -78,10 +78,10 @@ source /etc/platform/openrc; system application-apply --mode restore_db stx-openstack - name: Checking MariaDB apply progress ... (max 30 mins) - shell: source /etc/platform/openrc; system application-list | grep 'stx-openstack' + shell: >- + source /etc/platform/openrc; system application-show stx-openstack --column status --format value register: check_app_state - until: check_app_state.stdout is search('applied') or - check_app_state.stdout is search('apply-failed') + until: check_app_state.stdout in ['applied', 'apply-failed'] retries: 30 delay: 60 @@ -97,7 +97,7 @@ msg: >- MariaDB service cannot be restored successfully. Restore StarlingX Openstack application failed. - when: check_app_state.stdout is not search('applied') or + when: check_app_state.stdout != "applied" or check_mariadb_pod.rc != 0 - block: @@ -163,10 +163,9 @@ - name: Checking Cinder and Glance apply progress... (max 30 mins) shell: >- - source /etc/platform/openrc; system application-list | grep 'stx-openstack' + source /etc/platform/openrc; system application-show stx-openstack --column status --format value register: check_app_state - until: check_app_state.stdout is search('applied') or - check_app_state.stdout is search('apply-failed') + until: check_app_state.stdout in ['applied', 'apply-failed'] retries: 30 delay: 60 @@ -175,7 +174,7 @@ msg: >- Cinder and Glance services cannot be restored successfully. Restore stx-openstack application failed. - when: check_app_state.stdout is not search('applied') + when: check_app_state.stdout != "applied" - block: - name: Inform user to restore Glance images and Cinder volumes @@ -196,17 +195,17 @@ shell: source /etc/platform/openrc; system application-apply --mode normal stx-openstack - name: Checking stx-openstack apply progress for the remaining Openstack services... (max 50 mins) - shell: source /etc/platform/openrc; system application-list | grep 'stx-openstack' + shell: >- + source /etc/platform/openrc; system application-show stx-openstack --column status --format value register: check_app_state - until: check_app_state.stdout is search('applied') or - check_app_state.stdout is search('apply-failed') + until: check_app_state.stdout in ['applied', 'apply-failed'] retries: 50 delay: 60 - name: Fail if the remaining Openstack services cannot be restored successfully fail: msg: stx-openstack application is not applied successfully. - when: check_app_state.stdout is not search('applied') + when: check_app_state.stdout != "applied" - debug: msg: Restore stx-openstack application is successful! diff --git a/playbookconfig/src/playbooks/roles/restore-platform/restore-more-data/tasks/main.yml b/playbookconfig/src/playbooks/roles/restore-platform/restore-more-data/tasks/main.yml index 8ee9cd81d..e12a67dd9 100644 --- a/playbookconfig/src/playbooks/roles/restore-platform/restore-more-data/tasks/main.yml +++ b/playbookconfig/src/playbooks/roles/restore-platform/restore-more-data/tasks/main.yml @@ -347,18 +347,19 @@ # "online" state. This will ensure that keystone, sysinv and # mtcAgent are indeed in-service after being restated. - name: Check controller-0 is in online state - shell: source /etc/platform/openrc; system host-list | grep online + shell: source /etc/platform/openrc; system host-show controller-0 --column availability --format value register: check_online failed_when: false retries: 30 delay: 10 + until: check_online.stdout == "online" - name: Inform user that restore_platform is not successful debug: msg: >- Platform restore was unsuccessful. Please refer to the system administration guide for next step. - when: check_online.rc != 0 + when: check_online.stdout != "online" # Restore ceph-mon data - block: @@ -369,8 +370,8 @@ # - For systems with storage nodes we get ceph-mon data from storage-0 # ceph-mon that is already up and will not be reinstalled. - name: Check if setup has storage nodes - shell: source /etc/platform/openrc; system host-list | awk '$6=="storage"{exit 1}' - register: storage_nodes + shell: source /etc/platform/openrc; system host-list --format value --column personality + register: node_personalities failed_when: false # Get system_mode after restore and create flag file to skip wiping OSDs @@ -396,7 +397,7 @@ # Recover ceph data for systems with controller storage - include_role: name: recover-ceph-data - when: storage_nodes.rc == 0 + when: node_personalities.stdout is not search('storage') - name: Mark crushmap as restored file: @@ -413,7 +414,7 @@ msg: >- Controller-0 is now online. The next step is to unlock this controller. Please refer to the system administration guide for more details. - when: check_online.rc == 0 + when: check_online.stdout == "online" # Remove temporary staging area used by the copy module - name: Remove {{ ansible_remote_tmp }} directory diff --git a/playbookconfig/src/playbooks/test/tc_recover_ceph_data.yml b/playbookconfig/src/playbooks/test/tc_recover_ceph_data.yml index 268ea8a12..cb78b2ed4 100644 --- a/playbookconfig/src/playbooks/test/tc_recover_ceph_data.yml +++ b/playbookconfig/src/playbooks/test/tc_recover_ceph_data.yml @@ -71,7 +71,7 @@ - name: Retrieve management IP shell: >- source /etc/platform/openrc; - system host-show controller-0 | grep mgmt_ip | awk '{print $4}' + system host-show controller-0 --format value --column mgmt_ip register: mgmt_ip - name: Set derived facts for subsequent tasks/roles diff --git a/playbookconfig/src/playbooks/upgrade-k8s-networking.yml b/playbookconfig/src/playbooks/upgrade-k8s-networking.yml index fdb5b6d99..23858dc5d 100644 --- a/playbookconfig/src/playbooks/upgrade-k8s-networking.yml +++ b/playbookconfig/src/playbooks/upgrade-k8s-networking.yml @@ -9,38 +9,25 @@ vars: upgrade_k8s_networking: true + overrides_file: "/tmp/upgrade_overrides.yaml" tasks: - # TODO(kbujold): This comment from the review will be implemented in a separate submission. - # "I would recommend that we follow the same model as we did for for the Puppet - # hiera data generation to avoid scraping CLI command output. The output is not - # intended for machine consumption. Create a command line utility that shares the - # same code as the sysinv-conductor to generate the required Ansible formatted - # data (yaml) directly from the DB. See sysinv/cmd/puppet.py as an example. - # This same utility command can be used by B&R to generate the required restore - # data form the running system directly from the DB in a format that is understood - # the Playbooks." + - name: Create the upgrade overrides file + command: "/usr/bin/sysinv-utils create-host-overrides {{ overrides_file }}" + failed_when: result.stderr != "" + register: result - - name: Dump address pool data to temp file - shell: - source /etc/platform/openrc; system addrpool-list --nowrap > /tmp/addrpool.txt - - - name: Retrieve cluster_pod_subnet - shell: "grep cluster-pod-subnet /tmp/addrpool.txt | awk '{print $6\"/\"$8}'" - register: cluster_pod_subnet - - - name: Retrieve cluster_floating_address - shell: "grep cluster-host-subnet /tmp/addrpool.txt | awk '{print $14}'" - register: cluster_floating_address + - name: Read the overrides variables + include_vars: + file: "{{ overrides_file }}" - name: Set networking facts set_fact: kubelet_cni_bin_dir: "/usr/libexec/cni" - cluster_pod_subnet: "{{ cluster_pod_subnet.stdout }}" - cluster_network_ipv4: "{{ cluster_pod_subnet.stdout | ipv4 }}" - cluster_network_ipv6: "{{ cluster_pod_subnet.stdout | ipv6 }}" - cluster_floating_address: "{{ cluster_floating_address.stdout }}" + cluster_network_ipv4: "{{ cluster_pod_subnet | ipv4 }}" + cluster_network_ipv6: "{{ cluster_pod_subnet | ipv6 }}" + cluster_floating_address: "{{ cluster_host_floating_address }}" - name: Set images facts include_vars: