Update roles/postgres/tasks/main.yml
This commit is contained in:
@@ -17,20 +17,36 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
pg_version: "{{ pg_version_dirs.files | map(attribute='path') | map('basename') | sort | last }}"
|
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
|
- name: Define PostgreSQL cluster path
|
||||||
set_fact:
|
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 ---
|
# --- Stop cluster before config ---
|
||||||
- name: Stop PostgreSQL cluster
|
- name: Stop PostgreSQL cluster
|
||||||
shell: "pg_ctlcluster {{ pg_version }} main stop"
|
shell: "pg_ctlcluster {{ pg_version }} {{ pg_cluster }} stop"
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
# --- Configure PostgreSQL ---
|
# --- 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"f"
|
dest: "{{ pg_cluster_path }}/postgresql.conf"
|
||||||
|
|
||||||
- name: pg_hba.conf
|
- name: pg_hba.conf
|
||||||
template:
|
template:
|
||||||
@@ -40,16 +56,16 @@
|
|||||||
# --- Ensure cluster exists and started ---
|
# --- Ensure cluster exists and started ---
|
||||||
- name: Ensure PostgreSQL cluster exists
|
- name: Ensure PostgreSQL cluster exists
|
||||||
shell: |
|
shell: |
|
||||||
if ! pg_lsclusters | grep -q " {{ pg_version }} main "; then
|
if [ ! -d "/var/lib/postgresql/{{ pg_version }}/{{ pg_cluster }}" ]; then
|
||||||
pg_createcluster {{ pg_version }} main --start
|
pg_createcluster {{ pg_version }} {{ pg_cluster }} --start
|
||||||
else
|
else
|
||||||
pg_ctlcluster {{ pg_version }} main start
|
pg_ctlcluster {{ pg_version }} {{ pg_cluster }} start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --- Wait for socket to be ready ---
|
# --- Wait for socket to be ready ---
|
||||||
- name: Wait for PostgreSQL socket
|
- name: Wait for PostgreSQL socket
|
||||||
wait_for:
|
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
|
timeout: 60
|
||||||
|
|
||||||
# --- Install Python PostgreSQL libraries ---
|
# --- Install Python PostgreSQL libraries ---
|
||||||
|
|||||||
Reference in New Issue
Block a user