diff --git a/defaults/main.yml b/defaults/main.yml index 4bb04cd..933c8dc 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -10,6 +10,7 @@ postgresql_backup: user: root cron_minute: '*' cron_hour: '0' + compress: false databases: [] # - name: psql_database_name # user: psql_database_user diff --git a/tasks/main.yml b/tasks/main.yml index f70ce77..29d5b29 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -12,7 +12,7 @@ become: true template: src: templates/postgresql-backup-script.sh - dest: /etc/postgresql-backup-script.sh + dest: /opt/postgresql-backup-script.sh owner: "{{ postgresql_backup.user }}" backup: true mode: 0755 @@ -24,5 +24,5 @@ cron_file: /etc/crontab minute: "{{ postgresql_backup.cron_minute | default( '*' ) }}" hour: "{{ postgresql_backup.cron_hour | default( '0' ) }}" - job: /etc/postgresql-backup-script.sh + job: /etc/postgresql-backup-script.sh >/dev/null 2>&1 user: "{{ postgresql_backup.user }}" diff --git a/templates/postgresql-backup-script.sh b/templates/postgresql-backup-script.sh index d4742d8..116cfa6 100644 --- a/templates/postgresql-backup-script.sh +++ b/templates/postgresql-backup-script.sh @@ -19,8 +19,14 @@ backup_databases() { export PGPASSWORD="{{ db.password }}" {% endif %} if (umask 077 && pg_dump -F c -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.compress %} + tar -czvf "{{ db.name }}.psql.tar.gz" "{{ db.name }}.in_progress.psql" + {% else %} mv "{{ db.name }}.in_progress.psql" "{{ db.name }}.psql" + {% endif %} + echo "backup of {{ db.name }} successful" else + echo "failed to export {{ db.name }}" return 1 fi; {% endfor %} diff --git a/vars/main.yml b/vars/main.yml index 84c7ba0..74d6049 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,8 +1,4 @@ --- -# versionscheck -playbook_version_number: 17 # should be int -playbook_version_path: 'role-postgresql-backup_roles-ansible_github.com.version' # unique string - _postgresql_backup: required_packages: - postgresql-client @@ -12,3 +8,7 @@ _postgresql_backup: cron_minute: '*' cron_hour: '0' databases: [] + +# versionscheck +playbook_version_number: 18 # should be int +playbook_version_path: 'role-postgresql-backup_roles-ansible_github.com.version' # unique string