diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml index fce9d7c..e2c1986 100644 --- a/roles/postgres/tasks/main.yml +++ b/roles/postgres/tasks/main.yml @@ -6,29 +6,20 @@ update_cache: yes # --- Dynamiczne wykrywanie wersji PostgreSQL --- -- name: Detect installed PostgreSQL version - find: - paths: /etc/postgresql - file_type: directory - depth: 1 - register: pg_version_dirs - -- name: Set PostgreSQL version fact - set_fact: - pg_version: "{{ pg_version_dirs.files | map(attribute='path') | map('basename') | sort | last }}" - -- name: Detect cluster name - shell: "pg_lsclusters --no-header | awk '{print $2}' | head -n1" - register: pg_cluster_name +- name: Detect PostgreSQL clusters + shell: "pg_lsclusters --no-header | awk '{print $1, $2}' | head -n1" + register: pg_cluster_info changed_when: false -- set_fact: - pg_cluster: "{{ pg_cluster_name.stdout }}" - +- name: Set PostgreSQL version and cluster facts + set_fact: + pg_version: "{{ pg_cluster_info.stdout.split()[0] }}" + pg_cluster: "{{ pg_cluster_info.stdout.split()[1] }}" - name: Define PostgreSQL cluster path set_fact: pg_cluster_path: "/etc/postgresql/{{ pg_version }}/{{ pg_cluster }}" + pg_data_path: "/var/lib/postgresql/{{ pg_version }}/{{ pg_cluster }}" - name: Ensure cluster config directory exists file: @@ -36,7 +27,7 @@ state: directory owner: postgres group: postgres - mode: '0700' + mode: "0700" # --- Stop cluster before config --- - name: Stop PostgreSQL cluster @@ -57,7 +48,7 @@ # --- Ensure cluster exists and started --- - name: Ensure PostgreSQL cluster exists shell: | - if [ ! -d "/var/lib/postgresql/{{ pg_version }}/{{ pg_cluster }}" ]; then + if [ ! -d "{{ pg_data_path }}" ]; then pg_createcluster {{ pg_version }} {{ pg_cluster }} --start else pg_ctlcluster {{ pg_version }} {{ pg_cluster }} start