diff --git a/roles/metabase/defaults/.main.yml.swp b/roles/metabase/defaults/.main.yml.swp index 52be59a..5e65d2c 100644 Binary files a/roles/metabase/defaults/.main.yml.swp and b/roles/metabase/defaults/.main.yml.swp differ diff --git a/roles/metabase/tasks/install.yml b/roles/metabase/tasks/install.yml index c44d423..e2e624a 100644 --- a/roles/metabase/tasks/install.yml +++ b/roles/metabase/tasks/install.yml @@ -44,3 +44,10 @@ - db_server: "{{ metabase_db_server }}" - db_pass: "{{ metabase_db_pass }}" tags: metabase + +- name: Install pre and post backup hooks + template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/metabase mode=700 + loop: + - pre + - post + tags: metabase diff --git a/roles/metabase/templates/post-backup.j2 b/roles/metabase/templates/post-backup.j2 new file mode 100644 index 0000000..6d2232f --- /dev/null +++ b/roles/metabase/templates/post-backup.j2 @@ -0,0 +1,3 @@ +#!/bin/bash -e + +rm -f {{ metabase_root_dir }}/backup/* diff --git a/roles/metabase/templates/pre-backup.j2 b/roles/metabase/templates/pre-backup.j2 new file mode 100644 index 0000000..f29d770 --- /dev/null +++ b/roles/metabase/templates/pre-backup.j2 @@ -0,0 +1,13 @@ +#!/bin/bash -e + +/usr/bin/mysqldump \ +{% if metabase_db_server not in ['localhost','127.0.0.1'] %} + --user={{ metabase_db_user | quote }} \ + --password={{ metabase_db_pass | quote }} \ + --host={{ metabase_db_server | quote }} \ + --port={{ metabase_db_port | quote }} \ +{% endif %} + --quick --single-transaction \ + --add-drop-table {{ metabase_db_name | quote }} | zstd -c > {{ metabase_root_dir }}/backup/{{ metabase_db_name }}.sql.zst +cp {{ metabase_root_dir }}/etc/env {{ metabase_root_dir }}/backup/ +