ansible-role-postgresql/tasks/main.yml

67 lines
1.6 KiB
YAML

- name: install postgres
apt:
pkg:
- postgresql
- postgresql-contrib
- python3-psycopg2
- name: generate postgresql.conf
template:
src: postgresql.conf.j2
dest: "/etc/postgresql/{{ pg_version }}/main/postgresql.conf"
owner: postgres
group: postgres
mode: 0644
notify:
- restart postgres
- 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 user(s)
community.postgresql.postgresql_user:
name: "{{ item.key }}"
password: "{{ item.value }}"
become_user: postgres
become: true
with_dict: "{{ postgresql.users }}"
- name: add postgresql dbs
community.postgresql.postgresql_db:
name: "{{ item.key }}"
owner: "{{ item.value.owner|d(omit) }}"
encoding: "{{ item.value.encoding|d(omit) }}"
template: "{{ item.value.template|d(omit) }}"
lc_collate: "{{ item.value.lc_collate|d(omit) }}"
lc_ctype: "{{ item.value.lc_ctype|d(omit) }}"
become_user: postgres
become: true
with_dict: "{{ postgresql.dbs }}"
- name: add postgresql privs
community.postgresql.postgresql_privs: "{{ item }}"
become_user: postgres
become: true
loop: "{{ postgresql.privs }}"
- name: add vacuum cronjob
cron:
name: db maintenance
job: "/usr/bin/vacuumdb --all --analyze > /dev/null"
user: postgres
hour: "23"
minute: "26"
- 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