Update: Run all roles update at once

Previously we ran role by role which is not necessary and not
intended way of production update. In case of proper testing on
preprod customers should run update as fast as possible which
means leveraging ability to run all roles at once and even all
nodes of selected roles at once. With this patch the Pacemaker
enabled roles will still update in serial but the roles will be
done in parallel. In case of 3 controller 3 database 3 messaging
setup it will look roughly like this:

Update of controller[0] database[0] messaging[0]
Update of controller[0] database[1] messaging[1]
Update of controller[1] database[2] messaging[2]
Update of controller[2]

This is due to not blocking between roles and each role taking
different amount of time to apply the update. At any moment the
pacemaker quorum is not broken.

Change-Id: Ib119210139886382726bc0ccddfdb4f7f6803015
This commit is contained in:
Lukas Bezdicka 2019-11-27 12:17:47 +01:00
parent 2044957694
commit a2b433133d

View File

@ -3,6 +3,8 @@
import_tasks: ../common/l3_agent_connectivity_check_start_script.yml
- name: run overcloud minor update in each of the roles/hostgroups
async: 25200
poll: 0
shell: |
set -o pipefail
bash {{ overcloud_update_run_script_base }}-{{ item }}.sh 2>&1 {{ timestamper_cmd }} > \
@ -11,10 +13,15 @@
register: overcloud_update_nodes
ignore_errors: true
- name: was the overcloud minor update successful.
fail: msg="Overcloud minor update execution step failed..."
- name: was the overcloud minor update successful?
async_status:
jid: "{{ async_result_item.ansible_job_id }}"
loop: "{{ overcloud_update_nodes.results }}"
when: item.rc != 0
loop_control:
loop_var: "async_result_item"
register: async_poll_results
until: async_poll_results.finished
retries: 25200
- name: import tasks from l3_agent_connectivity_check_stop_script
import_tasks: ../common/l3_agent_connectivity_check_stop_script.yml