64 lines
1.4 KiB
YAML
64 lines
1.4 KiB
YAML
- name: install postgres
|
|
apt:
|
|
pkg:
|
|
- postgresql
|
|
- python-psycopg2
|
|
- python3-psycopg2
|
|
|
|
- name: generate pg_hba
|
|
template:
|
|
src: pg_hba.conf.j2
|
|
dest: "/etc/postgresql/{{ pg_version }}/main/pg_hba.conf"
|
|
owner: postgres
|
|
group: postgres
|
|
mode: 0640
|
|
notify:
|
|
- restart postgres
|
|
|
|
- name: add postgresql dbs
|
|
postgresql_db:
|
|
name: "{{ item.key }}"
|
|
become_user: postgres
|
|
become: true
|
|
with_dict: "{{ postgresql.dbs }}"
|
|
|
|
- name: add postgresql user(s)
|
|
postgresql_user:
|
|
name: "{{ item.key }}"
|
|
password: "{{ item.value }}"
|
|
become_user: postgres
|
|
become: true
|
|
with_dict: "{{ postgresql.users }}"
|
|
|
|
- name: add vacuum cronjob
|
|
cron:
|
|
name: db maintenance
|
|
job: "/usr/bin/vacuumdb --all --analyze > /dev/null"
|
|
user: postgres
|
|
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 "+%s-%Y%M%d-%H%M.sql.gz")'
|
|
user: postgres
|
|
hour: 5,11,17,23
|
|
minute: 45
|
|
|
|
- name: add backup cleanup cronjob
|
|
cron:
|
|
name: db backup cleanup
|
|
job: 'find /opt/postgresbackup/* -mtime +9 -type f -exec rm {} \;'
|
|
special_time: daily
|
|
|
|
- name: flush handlers so postgres is ready before other roles try to use it
|
|
meta: flush_handlers
|