diff --git a/postgres/defaults/main.yml b/postgres/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..496c92ba5ca3437caa60187b6cf0881f7a3da722 --- /dev/null +++ b/postgres/defaults/main.yml @@ -0,0 +1,3 @@ +--- + +postgres_enable_frequently: True diff --git a/postgres/tasks/main.yml b/postgres/tasks/main.yml index ee8897ecd59c0f3e88c2b53be35d703a402681aa..d46b069988238c6e89df8457e2efd17a5ee2673f 100644 --- a/postgres/tasks/main.yml +++ b/postgres/tasks/main.yml @@ -1,51 +1,66 @@ --- -# file: roles/postgres/tasks/main.yml - name: ensure postgres packages are installed - apt: name={{ item }} state=latest + apt: + name: "{{ item }}" + state: present with_items: - postgresql - python-psycopg2 - python3-psycopg2 - libpq-dev tags: - - packages - postgres - name: ensure postgres is started - service: name=postgresql state=started enabled=yes + service: + name: postgresql + state: started + enabled: yes tags: - - service - postgres - name: ensure we have rsnapshot - apt: name=rsnapshot state=latest + apt: + name: rsnapshot + state: present tags: - - packages - postgres - rsnapshot - backup - name: ensure we have our postgres backup script - copy: src=pgbackup.sh dest=/usr/local/bin/ owner=root group=root mode=0755 + copy: + src: pgbackup.sh + dest: /usr/local/bin/ + owner: root + group: root + mode: 0755 tags: - postgres - rsnapshot - backup - name: ensure we have our rsnapshot config - copy: src=rsnapshot.conf dest=/etc/ owner=root group=root mode=0644 + template: + src: rsnapshot.conf.j2 + dest: /etc/ + owner: root + group: root + mode: 0644 tags: - postgres - rsnapshot - backup - - config - name: ensure rsnapshot is running regularly - copy: src=crontab dest=/etc/cron.d/postgres-snapshot owner=root group=root mode=0644 + template: + src: crontab.j2 + dest: /etc/cron.d/postgres-snapshot + owner: root + group: root + mode: 0644 tags: - postgres - rsnapshot - backup - - cron - - config diff --git a/postgres/files/crontab b/postgres/templates/crontab.j2 similarity index 82% rename from postgres/files/crontab rename to postgres/templates/crontab.j2 index 9cc887a5ad0ebed81045f3778886d58943cf1f7e..1d0e2f559561660f8d3b90e96a6a0d3b549134e0 100644 --- a/postgres/files/crontab +++ b/postgres/templates/crontab.j2 @@ -1,4 +1,6 @@ +{% if postgres_enable_frequently %} 5,20,35,50 * * * * root /usr/bin/rsnapshot frequently +{% endif %} 3 * * * * root /usr/bin/rsnapshot hourly 51 23 * * * root /usr/bin/rsnapshot daily 41 23 * * 6 root /usr/bin/rsnapshot weekly diff --git a/postgres/files/rsnapshot.conf b/postgres/templates/rsnapshot.conf.j2 similarity index 99% rename from postgres/files/rsnapshot.conf rename to postgres/templates/rsnapshot.conf.j2 index 00205297c2e61d1c2199f172d567f9516dee4493..97657c5a4dfc6630f36a7111fb12d34d2e7faebe 100644 --- a/postgres/files/rsnapshot.conf +++ b/postgres/templates/rsnapshot.conf.j2 @@ -90,7 +90,9 @@ cmd_logger /usr/bin/logger # e.g. alpha, beta, gamma, etc. # ######################################### +{% if postgres_enable_frequently %} retain frequently 4 +{% endif %} retain hourly 6 retain daily 7 retain weekly 4