From 78231abc44972944d5273e9f007576507c31fc05 Mon Sep 17 00:00:00 2001 From: nd Date: Sun, 19 Apr 2020 11:52:58 +0200 Subject: [PATCH] added backup support --- defaults/main.yml | 3 +++ tasks/backup.yml | 21 +++++++++++++++++++++ tasks/main.yml | 24 +++--------------------- 3 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 tasks/backup.yml diff --git a/defaults/main.yml b/defaults/main.yml index c03add9..4d581d0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,4 +1,7 @@ postgresql: + backup: + enable: True + keep_days: 3 allowed_hosts: {} dbs: {} users: {} diff --git a/tasks/backup.yml b/tasks/backup.yml new file mode 100644 index 0000000..089fac8 --- /dev/null +++ b/tasks/backup.yml @@ -0,0 +1,21 @@ +- name: add postgresql backup folder + file: + path: /opt/postgresbackup/ + state: directory + owner: postgres + group: postgres + mode: '750' + +- name: add backup cronjob for easier backup/restore + cron: + name: db backup + job: '/usr/bin/pg_dumpall | gzip > /opt/postgresbackup/$(date "+\%Y\%m\%d-\%H\%M.sql.gz")' + user: postgres + hour: "*/4" + minute: 45 + +- name: add backup cleanup cronjob + cron: + name: db backup cleanup + job: 'find /opt/postgresbackup/* -mtime +{{ postgresql.backup.keep_days }} -type f -exec rm {} \;' + special_time: daily diff --git a/tasks/main.yml b/tasks/main.yml index c4a3d95..1acb295 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -38,27 +38,9 @@ hour: 23 minute: 26 -- name: add postgresql backup folder - file: - path: /opt/postgresbackup/ - state: directory - owner: postgres - group: postgres - mode: '750' - -- name: add backup cronjob for easier backup/restore - cron: - name: db backup - job: '/usr/bin/pg_dumpall | gzip > /opt/postgresbackup/$(date "+\%Y\%m\%d-\%H\%M.sql.gz")' - user: postgres - hour: "*/4" - minute: 45 - -- name: add backup cleanup cronjob - cron: - name: db backup cleanup - job: 'find /opt/postgresbackup/* -mtime +3 -type f -exec rm {} \;' - special_time: daily +- include_tasks: backup.yml + when: + - postgresql.backup.enable - name: flush handlers so postgres is ready before other roles try to use it meta: flush_handlers