Update roles/postgres/tasks/main.yml
This commit is contained in:
@@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user