Update roles/postgres/tasks/main.yml

This commit is contained in:
2026-01-29 13:55:26 +01:00
parent f1767c2112
commit c901987737

View File

@@ -1,47 +1,60 @@
- name: Install PostgreSQL - name: Install PostgreSQL packages
apt: apt:
name: name:
- postgresql-{{ pg_version }} - postgresql
- postgresql-contrib - postgresql-contrib
update_cache: yes update_cache: yes
- name: Stop postgres before config # --- Dynamiczne wykrywanie wersji PostgreSQL ---
service: - name: Detect installed PostgreSQL version
name: postgresql command: "ls /etc/postgresql | sort -V | tail -n1"
state: stopped register: pg_version_result
- name: Set PostgreSQL version fact
set_fact:
pg_version: "{{ pg_version_result.stdout }}"
- name: Define PostgreSQL cluster path
set_fact:
pg_cluster_path: "/etc/postgresql/{{ pg_version }}/main"
# --- Stop cluster before config ---
- name: Stop PostgreSQL cluster
shell: "pg_ctlcluster {{ pg_version }} main stop"
args:
warn: false
ignore_errors: true
# --- Configure PostgreSQL ---
- name: postgresql.conf - name: postgresql.conf
template: template:
src: postgresql.conf.j2 src: postgresql.conf.j2
dest: /etc/postgresql/{{ pg_version }}/main/postgresql.conf dest: "{{ pg_cluster_path }}/postgresql.conf"
- name: pg_hba.conf - name: pg_hba.conf
template: template:
src: pg_hba.conf.j2 src: pg_hba.conf.j2
dest: /etc/postgresql/{{ pg_version }}/main/pg_hba.conf dest: "{{ pg_cluster_path }}/pg_hba.conf"
- name: TLS cert dir # --- Ensure cluster exists and started ---
file: - name: Ensure PostgreSQL cluster exists
path: /etc/postgresql/ssl shell: |
state: directory if ! pg_lsclusters | grep -q " {{ pg_version }} main "; then
owner: postgres pg_createcluster {{ pg_version }} main --start
mode: "700" else
pg_ctlcluster {{ pg_version }} main start
fi
- name: Copy TLS cert # --- Wait for socket to be ready ---
copy: - name: Wait for PostgreSQL socket
src: pg.crt wait_for:
dest: /etc/postgresql/ssl/pg.crt path: "/var/run/postgresql/{{ pg_version }}-main/.s.PGSQL.5432"
owner: postgres timeout: 60
mode: "600"
- name: Copy TLS key # --- Install Python PostgreSQL libraries ---
copy: - name: Install python postgres libraries
src: pg.key apt:
dest: /etc/postgresql/ssl/pg.key name:
owner: postgres - python3-psycopg2
mode: "600" state: present
update_cache: yes
- name: Start postgres
service:
name: postgresql
state: started