f704a78029
blueprint database-backup-recovery Introduce a new option, mariadb_backup, which takes a backup of all databases hosted in MariaDB. Backups are performed using XtraBackup, the output of which is saved to a dedicated Docker volume on the target host (which defaults to the first node in the MariaDB cluster). It supports either full (the default) or incremental backups. Change-Id: Ied224c0d19b8734aa72092aaddd530155999dbc3
78 lines
3.0 KiB
YAML
78 lines
3.0 KiB
YAML
---
|
|
project_name: "mariadb"
|
|
|
|
mariadb_services:
|
|
mariadb:
|
|
container_name: mariadb
|
|
group: mariadb
|
|
enabled: true
|
|
image: "{{ mariadb_image_full }}"
|
|
volumes:
|
|
- "{{ node_config_directory }}/mariadb/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "mariadb:/var/lib/mysql"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
dimensions: "{{ mariadb_dimensions }}"
|
|
haproxy:
|
|
mariadb:
|
|
enabled: "{{ enable_mariadb|bool and not enable_external_mariadb_load_balancer|bool }}"
|
|
mode: "tcp"
|
|
port: "{{ mariadb_port }}"
|
|
frontend_tcp_extra:
|
|
- "option clitcpka"
|
|
- "timeout client 3600s"
|
|
backend_tcp_extra:
|
|
- "option srvtcpka"
|
|
- "timeout server 3600s"
|
|
- "option mysql-check user haproxy post-41"
|
|
custom_member_list: "{{ internal_haproxy_members.split(';') }}"
|
|
mariadb_external_lb:
|
|
enabled: "{{ enable_mariadb|bool and enable_external_mariadb_load_balancer|bool }}"
|
|
mode: "tcp"
|
|
port: "{{ mariadb_port }}"
|
|
frontend_tcp_extra:
|
|
- "option clitcpka"
|
|
- "timeout client 3600s"
|
|
backend_tcp_extra:
|
|
- "option srvtcpka"
|
|
- "timeout server 3600s"
|
|
custom_member_list: "{{ external_haproxy_members.split(';') }}"
|
|
|
|
####################
|
|
# Database
|
|
####################
|
|
database_cluster_name: "openstack"
|
|
database_max_timeout: 120
|
|
|
|
####################
|
|
# HAProxy
|
|
####################
|
|
internal_haproxy_members: "{% for host in groups['mariadb'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
|
external_haproxy_members: "{% for host in groups['mariadb'] %}server {{ host }} {{ host }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
|
|
|
####################
|
|
# Docker
|
|
####################
|
|
mariadb_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-mariadb"
|
|
mariadb_tag: "{{ openstack_release }}"
|
|
mariadb_image_full: "{{ mariadb_image }}:{{ mariadb_tag }}"
|
|
mariadb_dimensions: "{{ default_container_dimensions }}"
|
|
|
|
########################################
|
|
# Vars used within recover_cluster.yml
|
|
########################################
|
|
mariadb_service: "{{ mariadb_services['mariadb'] }}"
|
|
|
|
####################
|
|
# Backups
|
|
####################
|
|
xtrabackup_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-xtrabackup"
|
|
xtrabackup_tag: "{{ openstack_release }}"
|
|
xtrabackup_image_full: "{{ xtrabackup_image }}:{{ xtrabackup_tag }}"
|
|
|
|
mariadb_backup_host: "{{ groups['mariadb'][0] }}"
|
|
mariadb_backup_database_schema: "PERCONA_SCHEMA"
|
|
mariadb_backup_database_user: "backup"
|
|
mariadb_backup_database_address: "{{ database_address }}"
|
|
mariadb_backup_type: "full"
|