From d26daa76a1cfaf18ccad22a0f553bd6ab3bb84f8 Mon Sep 17 00:00:00 2001 From: L3D Date: Tue, 21 Jul 2020 18:43:58 +0200 Subject: [PATCH] install tar and gzip if needed --- defaults/main.yml | 3 +++ tasks/packages.yml | 7 +++++++ templates/postgresql-backup-script.sh.j2 | 2 ++ vars/main.yml | 5 ++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index 9fa665e..d5a0f06 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -6,6 +6,9 @@ postgresql_backup: required_packages: - postgresql-client - cron + optional_packages: + - tar + - gzip backup_dir: /var/backup/postgresql date_format: '%Y-%m-%d_%H-%M' user: root diff --git a/tasks/packages.yml b/tasks/packages.yml index 6ab77c2..25029c6 100644 --- a/tasks/packages.yml +++ b/tasks/packages.yml @@ -4,3 +4,10 @@ package: name: "{{ postgresql_backup.required_packages }}" state: present + +- name: "Install tar and gzip" + become: true + package: + name: "{{ postgresql_backup.optional_packages }}" + state: present + when: postgresql_backup.create_tar_gz | bool diff --git a/templates/postgresql-backup-script.sh.j2 b/templates/postgresql-backup-script.sh.j2 index 250a8aa..4826910 100644 --- a/templates/postgresql-backup-script.sh.j2 +++ b/templates/postgresql-backup-script.sh.j2 @@ -20,7 +20,9 @@ backup_databases() { {% endif %} if (umask 077 && pg_dump -F {{ postgresql_backup.export_option | string }} -h "{{ db.host | default( 'localhost' ) }}" -U "{{ db.user | default( 'postgres' ) }}" -p "{{ db.port | default( '5432' ) }}" "{{ db.name }}" -f "{{ db.name }}.in_progress.psql"); then {% if postgresql_backup.create_tar_gz %} + mv "{{ db.name }}.in_progress.psql" "{{ db.name }}.psql" tar -czvf "{{ db.name }}.psql.tar.gz" "{{ db.name }}.in_progress.psql" + rm "{{ db.name }}.psql" {% else %} mv "{{ db.name }}.in_progress.psql" "{{ db.name }}.psql" {% endif %} diff --git a/vars/main.yml b/vars/main.yml index eb1b736..cac1568 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -3,6 +3,9 @@ _postgresql_backup: required_packages: - postgresql-client - cron + optional_packages: + - tar + - gzip backup_dir: /var/backup/postgresql date_format: '%Y-%m-%d_%H-%M' user: root @@ -14,5 +17,5 @@ _postgresql_backup: databases: [] # versionscheck -playbook_version_number: 22 # should be int +playbook_version_number: 23 # should be int playbook_version_path: 'role-postgresql-backup_roles-ansible_github.com.version' # unique string