69 lines
1.5 KiB
YAML
69 lines
1.5 KiB
YAML
---
|
|
- name: Set postgresql installation directory
|
|
set_fact:
|
|
postgres_dir: /etc/postgresql/{{ postgres.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: "{{ postgres_dir }}"
|
|
state: directory
|
|
owner: postgres
|
|
group: postgres
|
|
mode: 0755
|
|
|
|
- name: Ensure configuration directory exists
|
|
file:
|
|
path: "{{ postgres_dir }}/conf.d"
|
|
state: directory
|
|
owner: postgres
|
|
group: postgres
|
|
mode: 0755
|
|
|
|
- name: Configuration of postgresql {{ postgres.version }}
|
|
template:
|
|
src: postgresql/postgresql.conf.j2
|
|
dest: "{{ postgres_dir }}/postgresql.conf"
|
|
mode: 0640
|
|
owner: postgres
|
|
group: postgres
|
|
notify:
|
|
- reload postgresql
|
|
|
|
- name: Master of configuration of postgresql {{ postgres.version }}
|
|
template:
|
|
src: postgresql/{{ item }}.j2
|
|
dest: "{{ postgres_dir }}/{{ item }}"
|
|
mode: 0640
|
|
owner: postgres
|
|
group: postgres
|
|
loop:
|
|
- pg_hba.conf
|
|
- pg_ident.conf
|
|
notify:
|
|
- reload postgresql
|
|
when: not(postgres.replica | default(False))
|
|
|
|
- name: Create backup directory
|
|
file:
|
|
path: "{{ postgres.backup.dir }}"
|
|
owner: postgres
|
|
group: postgres
|
|
state: directory
|
|
mode: 0770
|
|
when: postgres.backup is defined
|
|
|
|
- name: Create backup cron
|
|
template:
|
|
src: cron.d/pg_dump.j2
|
|
dest: /etc/cron.d/pg_dump
|
|
when: postgres.backup is defined
|