50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
---
|
|
- name: Add PostgreSQL GPG apt key
|
|
apt_key:
|
|
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
|
keyring: /usr/share/keyrings/apt.postgresql.org.gpg
|
|
state: present
|
|
|
|
- name: Add PostgreSQL Repository
|
|
apt_repository:
|
|
repo: "deb [arch={{ deb_architecture }} signed-by=/usr/share/keyrings/apt.postgresql.org.gpg] \
|
|
http://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main"
|
|
state: present
|
|
update_cache: true
|
|
|
|
- name: Install PostgreSQL
|
|
apt:
|
|
name: "postgresql-{{ pgsql_server_version }}"
|
|
state: latest
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
|
|
- name: Install required system packages
|
|
apt:
|
|
name: python3-psycopg2 # needed for postgresql ansible module
|
|
state: latest
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
|
|
- name: Set PostgreSQL parameters
|
|
community.postgresql.postgresql_set:
|
|
name: "{{ item.name }}"
|
|
value: "{{ item.value }}"
|
|
become_user: postgres
|
|
register: postgresql_set
|
|
loop: "{{ pgsql_config }}"
|
|
notify: Restart postgresql
|
|
|
|
- name: Set PostgreSQL Client Authentication
|
|
community.postgresql.postgresql_pg_hba:
|
|
dest: "/etc/postgresql/{{ pgsql_server_version }}/main/pg_hba.conf"
|
|
overwrite: false # remove preexisting rules
|
|
backup: true
|
|
backup_file: "/etc/postgresql/{{ pgsql_server_version }}/main/pg_hba.conf.backup"
|
|
# custom defaults
|
|
rules_behavior: combine
|
|
contype: host
|
|
# custom rules
|
|
rules: "{{ pgsql_client_auth }}"
|
|
notify: Reload postgresql
|