67 lines
1.6 KiB
YAML
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
|