diff options
-rw-r--r-- | roles/postgresql_server/files/backup-database | 6 | ||||
-rw-r--r-- | roles/postgresql_server/tasks/main.yml | 3 | ||||
-rw-r--r-- | roles/postgresql_server/templates/cron-backup-database | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/roles/postgresql_server/files/backup-database b/roles/postgresql_server/files/backup-database new file mode 100644 index 000000000..872f359e4 --- /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 b459e7915..7e91a6ba2 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 2f197d590..ce3c52d7d 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 }} |