Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 43 additions & 27 deletions ansible/roles/postgres/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
- name: Fetch PostgreSQL signing key
ansible.builtin.get_url:
url: "https://www.postgresql.org/media/keys/{{ postgres_apt_key_fingerprint }}.asc"
dest: "{{ postgres_apt_key_location }}"
mode: '0644'
tags:
- role::postgres

- name: Setup PostgreSQL apt repository
ansible.builtin.apt_repository:
repo: "deb [signed-by={{ postgres_apt_key_location }}] http://apt.postgresql.org/pub/repos/apt/ {{ ansible_distribution_release }}-pgdg main"
state: present
filename: "pgdg"
tags:
- role::postgres

- name: Install postgres packages
apt:
name:
Expand All @@ -10,6 +26,33 @@
tags:
- role::postgres

- name: Import postgresql.conf
template:
src: postgresql.conf.j2
dest: /etc/postgresql/{{ postgres_version }}/main/postgresql.conf
owner: postgres
group: postgres
mode: "0644"
tags:
- role::postgres
notify:
- Restart the postgres service

- name: Import PostgreSQL identity map (pg_ident.conf)
copy:
src: ident.conf
dest: /etc/postgresql/{{ postgres_version }}/main/pg_ident.conf
owner: postgres
group: postgres
mode: "0644"
tags:
- role::postgres
notify:
- Reload the postgres service

- name: Install and configure pg_repack
include_tasks: pg_repack.yml

- name: Check postgres is started and enabled on boot
service:
name: '{{ postgres_daemon }}'
Expand Down Expand Up @@ -97,30 +140,3 @@
become_user: "{{ postgres_user }}"
tags:
- role::postgres

- name: Import postgresql.conf
template:
src: postgresql.conf.j2
dest: /etc/postgresql/{{ postgres_version }}/main/postgresql.conf
owner: postgres
group: postgres
mode: "0644"
tags:
- role::postgres
notify:
- Restart the postgres service

- name: Import PostgreSQL identity map (pg_ident.conf)
copy:
src: ident.conf
dest: /etc/postgresql/{{ postgres_version }}/main/pg_ident.conf
owner: postgres
group: postgres
mode: "0644"
tags:
- role::postgres
notify:
- Reload the postgres service

- name: Install and configure pg_repack
include_tasks: pg_repack.yml
12 changes: 6 additions & 6 deletions ansible/roles/postgres/templates/postgresql.conf.j2
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
data_directory = '/var/lib/postgresql/15/main'
hba_file = '/etc/postgresql/15/main/pg_hba.conf'
ident_file = '/etc/postgresql/15/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/15-main.pid'
data_directory = '/var/lib/postgresql/{{ postgres_version }}/main'
hba_file = '/etc/postgresql/{{ postgres_version }}/main/pg_hba.conf'
ident_file = '/etc/postgresql/{{ postgres_version }}/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/{{ postgres_version }}-main.pid'
listen_addresses = '89.58.26.118,localhost'
port = 5432
unix_socket_directories = '/var/run/postgresql'
Expand All @@ -27,7 +27,7 @@ include_dir = 'conf.d'
cluster_name = 'schweinehund'

# The following is from https://pgtune.leopard.in.ua/
# DB Version: 15
# DB Version: 18
# OS Type: linux
# DB Type: mixed
# Total Memory (RAM): 64 GB
Expand All @@ -43,7 +43,7 @@ wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 20971kB
work_mem = 76260kB
huge_pages = try
min_wal_size = 1GB
max_wal_size = 4GB
Expand Down
4 changes: 3 additions & 1 deletion ansible/roles/postgres/vars/main/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
postgres_version: "15"
postgres_version: "18"
postgres_apt_key_fingerprint: "ACCC4CF8"
postgres_apt_key_location: "/etc/apt/keyrings/postgresql.gpg"
postgres_daemon: "postgresql@{{ postgres_version }}-main"
postgres_user: "postgres"
postgres_pg_repack_cron_filename: ansible_postgres_pg_repack
Expand Down
Loading