From 4b8960db1ba5d129b48af0f9e1b566089dd95f20 Mon Sep 17 00:00:00 2001 From: MrClayPole <9336574+MrClayPole@users.noreply.github.com> Date: Tue, 5 Oct 2021 13:37:29 +0100 Subject: [PATCH 1/6] Update main.yml Added variable osa_backup_command so that mariabackup or innobackupex can be used for backing up Galera depending on what is supported on the source database cluster --- defaults/main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/defaults/main.yml b/defaults/main.yml index dc2efbd..4308292 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -11,3 +11,7 @@ osa_backup_cron_day: "*" osa_backup_cron_month: "*" osa_backup_cron_weekday: "*" osa_backup_cron_command: "/usr/local/bin/openstack-ansible -i /opt/openstack-ansible/playbooks/inventory/dynamic_inventory.py /opt/openstack-ansible/playbooks/openstack-backup.yml" + +# osa_backup command line tool to be used when exporting the databases. From mariadb 10.3 onwards precona/innobackupex backup is no longer available and mariabackup should be used in its palc$ +osa_backup_command: "innobackupex --compress --compress-threads=8 "{{ osa_backup_remote_galera_dir }}"" +#osa_backup_command: "mariabackup --backup --compress --compress-threads=8 --target-dir={{ osa_backup_remote_galera_dir }}/{{ ansible_date_time.iso8601_basic_short }}" From a3f4b7c1222171e552e171d0ca72634fe865aea5 Mon Sep 17 00:00:00 2001 From: MrClayPole <9336574+MrClayPole@users.noreply.github.com> Date: Tue, 5 Oct 2021 13:39:10 +0100 Subject: [PATCH 2/6] Update backup_galera.yml Updated backup to used osa_backup_command variable which can be chosen from the default/main.yml to allow support for innobackupex or mariabackup --- tasks/backup_galera.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/backup_galera.yml b/tasks/backup_galera.yml index 9d91e3a..3da42bc 100644 --- a/tasks/backup_galera.yml +++ b/tasks/backup_galera.yml @@ -20,7 +20,7 @@ mode: 0755 - name: Backup galera server database - shell: innobackupex --compress --compress-threads=8 "{{ osa_backup_remote_galera_dir }}" + shell: "{{ osa_backup_command }}" delegate_to: "{{ groups['galera_all'] | last }}" tags: From c72b94ed236ab1ac68787a3fb831d6ab26203cdd Mon Sep 17 00:00:00 2001 From: MrClayPole <9336574+MrClayPole@users.noreply.github.com> Date: Tue, 5 Oct 2021 13:48:30 +0100 Subject: [PATCH 3/6] Update main.yml Removed extra quotes from osa_backup_command innobackupex line --- defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index 4308292..f42b8eb 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -13,5 +13,5 @@ osa_backup_cron_weekday: "*" osa_backup_cron_command: "/usr/local/bin/openstack-ansible -i /opt/openstack-ansible/playbooks/inventory/dynamic_inventory.py /opt/openstack-ansible/playbooks/openstack-backup.yml" # osa_backup command line tool to be used when exporting the databases. From mariadb 10.3 onwards precona/innobackupex backup is no longer available and mariabackup should be used in its palc$ -osa_backup_command: "innobackupex --compress --compress-threads=8 "{{ osa_backup_remote_galera_dir }}"" +osa_backup_command: "innobackupex --compress --compress-threads=8 {{ osa_backup_remote_galera_dir }}" #osa_backup_command: "mariabackup --backup --compress --compress-threads=8 --target-dir={{ osa_backup_remote_galera_dir }}/{{ ansible_date_time.iso8601_basic_short }}" From 227520d6175fed64b7eb9dd447193f881e3a3417 Mon Sep 17 00:00:00 2001 From: MrClayPole <9336574+MrClayPole@users.noreply.github.com> Date: Tue, 5 Oct 2021 13:54:15 +0100 Subject: [PATCH 4/6] Update README.md Updated readme to explain reason for forking --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index eb54281..4aabc03 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +Forked from opsta to add mariabackup support. If you need mariabackup support then edit default/main.yml to enable mariabackup over innobackupex via the osa_backup_command variable. + OpenStack Ansible backup ========= @@ -21,6 +23,7 @@ osa_backup_cron_day: "*" osa_backup_cron_month: "*" osa_backup_cron_weekday: "*" osa_backup_cron_command: "/usr/local/bin/openstack-ansible -i /opt/openstack-ansible/playbooks/inventory/dynamic_inventory.py /opt/openstack-ansible/playbooks/openstack-backup.yml" +osa_backup_command: "innobackupex --compress --compress-threads=8 {{ osa_backup_remote_galera_dir }}" ``` Dependencies From db4ad5ad88e04fe3b33819d9e6a1cc6d02eae472 Mon Sep 17 00:00:00 2001 From: MrClayPole <9336574+MrClayPole@users.noreply.github.com> Date: Tue, 5 Oct 2021 13:57:45 +0100 Subject: [PATCH 5/6] Update main.yml Change the default backup command from innobackupex to mariabackup --- defaults/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index f42b8eb..d955af6 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -13,5 +13,5 @@ osa_backup_cron_weekday: "*" osa_backup_cron_command: "/usr/local/bin/openstack-ansible -i /opt/openstack-ansible/playbooks/inventory/dynamic_inventory.py /opt/openstack-ansible/playbooks/openstack-backup.yml" # osa_backup command line tool to be used when exporting the databases. From mariadb 10.3 onwards precona/innobackupex backup is no longer available and mariabackup should be used in its palc$ -osa_backup_command: "innobackupex --compress --compress-threads=8 {{ osa_backup_remote_galera_dir }}" -#osa_backup_command: "mariabackup --backup --compress --compress-threads=8 --target-dir={{ osa_backup_remote_galera_dir }}/{{ ansible_date_time.iso8601_basic_short }}" +#osa_backup_command: "innobackupex --compress --compress-threads=8 {{ osa_backup_remote_galera_dir }}" +osa_backup_command: "mariabackup --backup --compress --compress-threads=8 --target-dir={{ osa_backup_remote_galera_dir }}/{{ ansible_date_time.iso8601_basic_short }}" From 33883a1c397b501265937c11285ecae1c8792f33 Mon Sep 17 00:00:00 2001 From: MrClayPole <9336574+MrClayPole@users.noreply.github.com> Date: Thu, 7 Oct 2021 09:49:37 +0100 Subject: [PATCH 6/6] Update main.yml Turns out the ansible_date_time uses a cache date and time rather than actual. With openstack-ansible this can be days out of date. This update ensures the actual date and time is used as part of the mariabackup dir --- defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index d955af6..af44438 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -14,4 +14,4 @@ osa_backup_cron_command: "/usr/local/bin/openstack-ansible -i /opt/openstack-ans # osa_backup command line tool to be used when exporting the databases. From mariadb 10.3 onwards precona/innobackupex backup is no longer available and mariabackup should be used in its palc$ #osa_backup_command: "innobackupex --compress --compress-threads=8 {{ osa_backup_remote_galera_dir }}" -osa_backup_command: "mariabackup --backup --compress --compress-threads=8 --target-dir={{ osa_backup_remote_galera_dir }}/{{ ansible_date_time.iso8601_basic_short }}" +osa_backup_command: "mariabackup --backup --compress --compress-threads=8 --target-dir={{ osa_backup_remote_galera_dir }}/{{ lookup('pipe','date +%Y-%m-%d_%H-%M-%S') }}"