openstack-ansible-galera_se.../tasks/galera_server_backups.yml
David Hitze 89b2cb4aed Added vars to override systemd for mariabackup
Added variables ``galera_backups_full_init_overrides`` and
``galera_backups_increment_init_overrides`` that can be leveraged to
override default set of systemd unit file for mariadb backups.

Change-Id: Ib15c60dc577b376b1f761c4266eea89c4cb0be9f
(cherry picked from commit 3e2afc1e4edb152693d4e77a35340791dc80e408)
(cherry picked from commit b5f4e4d737f4a2f8fc6ded3639904b7e429048d9)
2023-09-25 16:04:42 +02:00

101 lines
3.8 KiB
YAML

---
- name: Ensure group backups exists
group:
name: "{{ galera_mariadb_backups_group_name }}"
state: present
gid: "{{ galera_mariadb_backups_group_gid | default(omit) }}"
- name: Create mariadb back up directory
file:
path: "{{ galera_mariadb_backups_path }}"
state: "directory"
owner: "mysql"
group: "{{ galera_mariadb_backups_group_name }}"
mode: "0750"
- name: Template out mariadb backup script
template:
src: "mariabackup_script.py.j2"
dest: "{{ galera_mariadb_backups_path }}/mariabackup_script.py"
mode: "0755"
- name: Template out mariabackup cnf file
template:
src: "mariabackup.cnf.j2"
dest: "{{ galera_mariadb_backups_cnf_file }}"
mode: "0644"
- name: Create service and timer for full backups
import_role:
name: systemd_service
vars:
systemd_service_enabled: true
systemd_service_restart_changed: false
systemd_overrides: "{{ galera_mariadb_backups_full_init_overrides }}"
systemd_user_name: "mysql"
systemd_group_name: "{{ galera_mariadb_backups_group_name }}"
systemd_services:
- service_name: "mariabackup-full"
execstarts:
- /usr/bin/python3 {{ galera_mariadb_backups_path }}/mariabackup_script.py {{ galera_mariadb_backups_path }}
--full-backup --copies={{ galera_mariadb_backups_full_copies }} --suffix={{ galera_mariadb_backups_suffix }}
--defaults-file={{ galera_mariadb_backups_cnf_file }}
--compress={{ galera_mariadb_backups_compress }} --compressor={{ galera_mariadb_backups_compressor }}
environment:
UMASK: '0640'
UMASK_DIR: '0750'
program_sandboxing:
RuntimeDirectory: 'mariabackup-galera'
timer:
state: "started"
options:
OnCalendar: "{{ galera_mariadb_backups_full_on_calendar }}"
RandomizedDelaySec: "{{ galera_mariadb_backups_full_randomized_delay_sec }}"
Persistent: true
Unit: "mariabackup-full.service"
- name: Create service and timer for incremental backups
import_role:
name: systemd_service
vars:
systemd_service_enabled: true
systemd_service_restart_changed: false
systemd_overrides: "{{ galera_mariadb_backups_increment_init_overrides }}"
systemd_user_name: "mysql"
systemd_group_name: "{{ galera_mariadb_backups_group_name }}"
systemd_services:
- service_name: "mariabackup-increment"
execstarts:
- /usr/bin/python3 {{ galera_mariadb_backups_path }}/mariabackup_script.py {{ galera_mariadb_backups_path }}
--increment --copies={{ galera_mariadb_backups_full_copies }} --suffix={{ galera_mariadb_backups_suffix }}
--defaults-file={{ galera_mariadb_backups_cnf_file }}
--compress={{ galera_mariadb_backups_compress }} --compressor={{ galera_mariadb_backups_compressor }}
environment:
UMASK: '0640'
UMASK_DIR: '0750'
program_sandboxing:
RuntimeDirectory: 'mariabackup-galera'
timer:
state: "started"
options:
OnCalendar: "{{ galera_mariadb_backups_increment_on_calendar }}"
RandomizedDelaySec: "{{ galera_mariadb_backups_increment_randomized_delay_sec }}"
Persistent: true
Unit: "mariabackup-increment.service"
when: galera_mariadb_backups_increment_on_calendar is defined
- name: Grant access to the database for the backup service
delegate_to: "{{ galera_db_setup_host }}"
vars:
ansible_python_interpreter: "{{ galera_db_setup_python_interpreter }}"
community.mysql.mysql_user:
name: "{{ galera_mariadb_backups_user }}"
password: "{{ galera_mariadb_backups_password }}"
host: "%"
priv: "*.*:RELOAD,PROCESS,LOCK TABLES,REPLICATION CLIENT"
append_privs: yes
login_unix_socket: "{{ galera_unix_socket }}"
check_hostname: false
no_log: true
run_once: true