From ca1dcd5c61a2f969284309fb849627684fb576e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20=C5=BBbikowski?= Date: Thu, 29 Jan 2026 14:10:20 +0100 Subject: [PATCH] Update roles/postgres/tasks/main.yml --- roles/postgres/tasks/main.yml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml index dc854f9..a653564 100644 --- a/roles/postgres/tasks/main.yml +++ b/roles/postgres/tasks/main.yml @@ -17,20 +17,36 @@ set_fact: pg_version: "{{ pg_version_dirs.files | map(attribute='path') | map('basename') | sort | last }}" +- name: Detect cluster name + command: "pg_lsclusters --no-header | awk '{print $2}' | head -n1" + register: pg_cluster_name + changed_when: false + +- set_fact: + pg_cluster: "{{ pg_cluster_name.stdout }}" + - name: Define PostgreSQL cluster path set_fact: - pg_cluster_path: "/etc/postgresql/{{ pg_version }}/main" + pg_cluster_path: "/etc/postgresql/{{ pg_version }}/{{ pg_cluster }}" + +- name: Ensure cluster config directory exists + file: + path: "{{ pg_cluster_path }}" + state: directory + owner: postgres + group: postgres + mode: '0700' # --- Stop cluster before config --- - name: Stop PostgreSQL cluster - shell: "pg_ctlcluster {{ pg_version }} main stop" + shell: "pg_ctlcluster {{ pg_version }} {{ pg_cluster }} stop" ignore_errors: true # --- Configure PostgreSQL --- - name: postgresql.conf template: src: postgresql.conf.j2 - dest: "/etc/postgresql/{{ pg_version }}/main/postgresql.conf"f" + dest: "{{ pg_cluster_path }}/postgresql.conf" - name: pg_hba.conf template: @@ -40,16 +56,16 @@ # --- Ensure cluster exists and started --- - name: Ensure PostgreSQL cluster exists shell: | - if ! pg_lsclusters | grep -q " {{ pg_version }} main "; then - pg_createcluster {{ pg_version }} main --start + if [ ! -d "/var/lib/postgresql/{{ pg_version }}/{{ pg_cluster }}" ]; then + pg_createcluster {{ pg_version }} {{ pg_cluster }} --start else - pg_ctlcluster {{ pg_version }} main start + pg_ctlcluster {{ pg_version }} {{ pg_cluster }} start fi # --- Wait for socket to be ready --- - name: Wait for PostgreSQL socket wait_for: - path: "/var/run/postgresql/{{ pg_version }}-main/.s.PGSQL.5432" + path: "/var/run/postgresql/{{ pg_version }}-{{ pg_cluster }}/.s.PGSQL.5432" timeout: 60 # --- Install Python PostgreSQL libraries ---