openstack-ansible/scripts/upgrade-utilities/galera-cluster-rolling-restart.yml
Jesse Pretorius cd32d15cc0 Add nova placement to placement migration
In order to facilitate the nova placement -> extracted placement
migration, while keeping the services up for as long as possible,
we combine the two groups for the load balancer configuration on
the first pass, and pass the appropriate flag for the openstack
playbook to handle the migration. Once it's all done, we re-run
the haproxy playbook without the flag to ensure that the old nova
placement backends are removed.

We also remove haproxy_nova_placement_whitelist_networks as it is
no longer used anywhere.

Change-Id: I85e9182e7c4fe9477d30dd16b4132c1645205cce
2019-10-08 19:03:15 +00:00

69 lines
2.0 KiB
YAML

---
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Gracefully restart mariadb/galera cluster
hosts: galera_all
serial: 1
max_fail_percentage: 0
gather_facts: false
user: root
tasks:
- name: Stop mariadb
service:
name: mysql
state: stopped
retries: 5
delay: 10
- name: Stop container
lxc_container:
name: "{{ inventory_hostname }}"
state: "stopped"
delegate_to: "{{ physical_host }}"
when: not hostvars[inventory_hostname]['is_metal']
- name: Start container
lxc_container:
name: "{{ inventory_hostname }}"
state: "started"
delegate_to: "{{ physical_host }}"
when: not hostvars[inventory_hostname]['is_metal']
- name: Start mariadb
service:
name: mysql
state: started
retries: 5
delay: 10
when: hostvars[inventory_hostname]['is_metal']
post_tasks:
- name: Wait for mariadb port 3306 to be available
wait_for:
port: "3306"
host: "{{ ansible_host | default(ansible_ssh_host | default(inventory_hostname)) }}"
retries: 10
delay: 10
delegate_to: "{{ groups['utility_all'][0] }}"
- name: Check that WSREP is ready and Synced
shell: "/usr/bin/mysqladmin extended-status | egrep '(wsrep_local_state_comment)'"
register: mysql_ready
until:
- mysql_ready.rc == 0
- (mysql_ready.stdout).find("Synced") != -1
retries: 60
delay: 1