diff --git a/roles/postgresql_server/files/backup-database b/roles/postgresql_server/files/backup-database new file mode 100644 index 0000000000..872f359e41 --- /dev/null +++ b/roles/postgresql_server/files/backup-database @@ -0,0 +1,6 @@ +#!/bin/bash +# Backup a database *locally* to /backups/. + +DB=$1 + +/usr/bin/pg_dump -C $DB | /usr/bin/xz > /backups/$DB-$(date +%F).dump.xz diff --git a/roles/postgresql_server/tasks/main.yml b/roles/postgresql_server/tasks/main.yml index b459e79155..7e91a6ba27 100644 --- a/roles/postgresql_server/tasks/main.yml +++ b/roles/postgresql_server/tasks/main.yml @@ -36,6 +36,9 @@ - name: Ensure postgres has a place to backup to file: dest=/backups state=directory owner=postgres +- name: Copy over backup scriplet + copy: src=backup-database dest=/usr/local/bin/backup-database mode=0755 + - name: Set up some cronjobs to backup databases as configured template: > src=cron-backup-database diff --git a/roles/postgresql_server/templates/cron-backup-database b/roles/postgresql_server/templates/cron-backup-database index 2f197d590a..ce3c52d7d4 100644 --- a/roles/postgresql_server/templates/cron-backup-database +++ b/roles/postgresql_server/templates/cron-backup-database @@ -1 +1 @@ -0 0 * * * postgres /usr/bin/pg_dump -C {{ item }} | /usr/bin/xz > /backups/{{ item }}-$(date +%F).dump.xz +0 0 * * * postgres /usr/local/bin/backup-database {{ item }}