235 lines
6.9 KiB
YAML
235 lines
6.9 KiB
YAML
---
|
|
- name: Starting first MariaDB container
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "start_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
environment:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
BOOTSTRAP_ARGS: "--wsrep-new-cluster"
|
|
image: "{{ service.image }}"
|
|
labels:
|
|
BOOTSTRAP:
|
|
name: "{{ service.container_name }}"
|
|
restart_policy: "never"
|
|
volumes: "{{ service.volumes }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- bootstrap_host is defined
|
|
- bootstrap_host == inventory_hostname
|
|
listen: Bootstrap MariaDB cluster
|
|
notify:
|
|
- restart mariadb
|
|
|
|
# TODO(jeffrey4l), remove the task check when the wait_for bug is fixed
|
|
# https://github.com/ansible/ansible-modules-core/issues/2788
|
|
- name: wait first mariadb container
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ mariadb_port }}"
|
|
connect_timeout: 1
|
|
timeout: 60
|
|
search_regex: "MariaDB"
|
|
register: check_mariadb_port
|
|
until: check_mariadb_port is success
|
|
retries: 10
|
|
delay: 6
|
|
when:
|
|
- bootstrap_host is defined
|
|
- bootstrap_host == inventory_hostname
|
|
listen: Bootstrap MariaDB cluster
|
|
|
|
# NOTE(mgoddard): In Rocky the MariaDB image had an issue where it would not
|
|
# stop on demand, and would result in Docker forcibly killing the container.
|
|
# This could lead to a failed upgrade if the new image is unable to recover
|
|
# from the crash. See https://bugs.launchpad.net/kolla-ansible/+bug/1820325.
|
|
# TODO(mgoddard): Remove this task in Train.
|
|
- name: shutdown slave mariadb
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "start_container"
|
|
command: >-
|
|
bash -c '
|
|
sudo -E kolla_set_configs &&
|
|
mysqladmin shutdown --host={{ api_interface_address }} --user=root --password={{ database_password }}
|
|
'
|
|
common_options: "{{ docker_common_options }}"
|
|
detach: False
|
|
name: "mariadb_shutdown"
|
|
image: "{{ service.image }}"
|
|
volumes: "{{ service.volumes }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
labels:
|
|
UPGRADE:
|
|
restart_policy: "never"
|
|
no_log: true
|
|
when:
|
|
- kolla_action != "config"
|
|
- has_cluster | bool
|
|
- inventory_hostname != master_host
|
|
listen: restart mariadb
|
|
|
|
- name: restart slave mariadb
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "recreate_or_restart_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ service.container_name }}"
|
|
image: "{{ service.image }}"
|
|
volumes: "{{ service.volumes }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname != master_host
|
|
listen: restart mariadb
|
|
|
|
# TODO(jeffrey4l), remove the task check when the wait_for bug is fixed
|
|
# https://github.com/ansible/ansible-modules-core/issues/2788
|
|
- name: wait for slave mariadb
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ mariadb_port }}"
|
|
connect_timeout: 1
|
|
timeout: 60
|
|
search_regex: "MariaDB"
|
|
register: check_mariadb_port
|
|
until: check_mariadb_port is success
|
|
retries: 10
|
|
delay: 6
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname != master_host
|
|
listen: restart mariadb
|
|
|
|
- name: run upgrade on slave
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "start_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
detach: False
|
|
dimensions: "{{ service.dimensions }}"
|
|
environment:
|
|
KOLLA_UPGRADE:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
DB_HOST: "{{ api_interface_address }}"
|
|
DB_PORT: "{{ mariadb_port }}"
|
|
DB_ROOT_PASSWORD: "{{ database_password }}"
|
|
image: "{{ service.image }}"
|
|
labels:
|
|
UPGRADE:
|
|
name: "upgrade_mariadb"
|
|
restart_policy: "never"
|
|
volumes: "{{ service.volumes }}"
|
|
no_log: true
|
|
when:
|
|
- kolla_action == "upgrade"
|
|
- inventory_hostname != master_host
|
|
listen: restart mariadb
|
|
|
|
# NOTE(mgoddard): In Rocky the MariaDB image had an issue where it would not
|
|
# stop on demand, and would result in Docker forcibly killing the container.
|
|
# This could lead to a failed upgrade if the new image is unable to recover
|
|
# from the crash. See https://bugs.launchpad.net/kolla-ansible/+bug/1820325.
|
|
# TODO(mgoddard): Remove this task in Train.
|
|
- name: shutdown master mariadb
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "start_container"
|
|
command: >-
|
|
bash -c '
|
|
sudo -E kolla_set_configs &&
|
|
mysqladmin shutdown --host={{ api_interface_address }} --user=root --password={{ database_password }}
|
|
'
|
|
common_options: "{{ docker_common_options }}"
|
|
detach: False
|
|
name: "mariadb_shutdown"
|
|
image: "{{ service.image }}"
|
|
volumes: "{{ service.volumes }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
labels:
|
|
UPGRADE:
|
|
restart_policy: "never"
|
|
no_log: true
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname == master_host
|
|
listen: restart mariadb
|
|
|
|
- name: restart master mariadb
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "recreate_or_restart_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ service.container_name }}"
|
|
image: "{{ service.image }}"
|
|
volumes: "{{ service.volumes }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname == master_host
|
|
listen: restart mariadb
|
|
|
|
# TODO(jeffrey4l), remove the task check when the wait_for bug is fixed
|
|
# https://github.com/ansible/ansible-modules-core/issues/2788
|
|
- name: Waiting for master mariadb
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ mariadb_port }}"
|
|
connect_timeout: 1
|
|
timeout: 60
|
|
search_regex: "MariaDB"
|
|
register: check_mariadb_port
|
|
until: check_mariadb_port is success
|
|
retries: 10
|
|
delay: 6
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname == master_host
|
|
listen: restart mariadb
|
|
|
|
- name: run upgrade on master
|
|
vars:
|
|
service_name: "mariadb"
|
|
service: "{{ mariadb_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "start_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
detach: False
|
|
dimensions: "{{ service.dimensions }}"
|
|
environment:
|
|
KOLLA_UPGRADE:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
DB_HOST: "{{ api_interface_address }}"
|
|
DB_PORT: "{{ mariadb_port }}"
|
|
DB_ROOT_PASSWORD: "{{ database_password }}"
|
|
image: "{{ service.image }}"
|
|
labels:
|
|
UPGRADE:
|
|
name: "upgrade_mariadb"
|
|
restart_policy: "never"
|
|
volumes: "{{ service.volumes }}"
|
|
no_log: true
|
|
when:
|
|
- kolla_action == "upgrade"
|
|
- inventory_hostname == master_host
|
|
listen: restart mariadb
|