ansible/roles/postgresql/tasks/main.yml

54 lines
1.2 KiB
YAML

---
- name: Set postgresql installation directory
set_fact:
psql_dir: '/etc/postgresql/{{ psql.version }}/main/'
- name: Install postgresql
apt:
update_cache: true
name: postgresql
state: present
register: apt_result
retries: 3
until: apt_result is succeeded
- name: Ensure main postgresql directory exists
file:
path: '{{ psql_dir }}'
state: directory
owner: postgres
group: postgres
mode: 0755
- name: Ensure configuration directory exists
file:
path: '{{ psql_dir }}/conf.d'
state: directory
owner: postgres
group: postgres
mode: 0755
- name: Configuration of postgresql {{ psql.version }}
template:
src: postgresql/postgresql.conf.j2
dest: '{{ psql_dir }}/postgresql.conf'
mode: 0640
owner: postgres
group: postgres
notify:
- restart postgresql
- name: Master of configuration of postgresql {{ psql.version }}
template:
src: 'postgresql/{{ item }}.j2'
dest: '{{ psql_dir }}/{{ item }}'
mode: 0640
owner: postgres
group: postgres
loop:
- pg_hba.conf
- pg_ident.conf
notify:
- restart postgresql
when: 'not(psql.replica | default(False))'