aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/mariadb/tasks/backup.yml
blob: c07d7ded6f5e44e36db794c779afa09b30978e06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
- name: Get MariaDB container facts
  become: true
  kolla_container_facts:
    action: get_containers
    container_engine: "{{ kolla_container_engine }}"
    name:
      - "{{ mariadb_services.mariadb.container_name }}"
  check_mode: false
  register: container_facts

- name: Taking {{ mariadb_backup_type }} database backup via Mariabackup
  vars:
    cmd: "{{ 'kolla_mariadb_backup.sh' if mariadb_backup_target == 'active' else 'kolla_mariadb_backup_replica.sh' }}"
  become: true
  kolla_container:
    action: "start_container"
    command: "bash -c 'sudo -E kolla_set_configs && /usr/local/bin/{{ cmd }}'"
    common_options: "{{ docker_common_options }}"
    detach: false
    # NOTE(mgoddard): Try to use the same image as the MariaDB server container
    # to avoid compatibility issues. See
    # https://bugs.launchpad.net/kolla-ansible/+bug/2058644.
    image: "{{ container_facts.containers[mariadb_services.mariadb.container_name].Config.Image | default(mariadb_services.mariadb.image) }}"
    name: "mariabackup"
    restart_policy: oneshot
    remove_on_exit: true
    environment:
      BACKUP_TYPE: "{{ mariadb_backup_type }}"
    volumes:
      - "{{ node_config_directory }}/mariabackup/:{{ container_config_directory }}/:ro"
      - "/etc/localtime:/etc/localtime:ro"
      - "mariadb:/var/lib/mysql"
      - "mariadb_backup:/backup"
      - "kolla_logs:/var/log/kolla/"
  when:
    - inventory_hostname == mariadb_backup_host
    - mariadb_backup_possible | bool