summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roles/postgresql_server/files/backup-database6
-rw-r--r--roles/postgresql_server/tasks/main.yml3
-rw-r--r--roles/postgresql_server/templates/cron-backup-database2
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 }}