62 lines
No EOL
1.8 KiB
YAML
62 lines
No EOL
1.8 KiB
YAML
---
|
|
- name: Set up PostgreSQL with NVMe storage
|
|
hosts: postgres_servers
|
|
become: yes
|
|
vars:
|
|
postgresql_storage_setup_enabled: true
|
|
postgresql_storage_type: raid0
|
|
# Override data directory to ensure it's on the RAID array
|
|
postgresql_data_directory: /mnt/pgdata/16/main
|
|
postgresql_wal_directory: /mnt/pgdata/wal
|
|
postgresql_backup_directory: /mnt/pgdata/backups
|
|
# Set the APRS database password (you should use ansible-vault for this)
|
|
vault_postgresql_aprsme_password: "mjBipckSZfNOoSOWLMRsfZEqJ9I5Of21"
|
|
|
|
tasks:
|
|
- name: Check current storage status
|
|
command: lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
|
|
register: storage_status
|
|
changed_when: false
|
|
|
|
- name: Display current storage
|
|
debug:
|
|
var: storage_status.stdout_lines
|
|
|
|
- name: Check if PostgreSQL is already installed
|
|
stat:
|
|
path: /usr/lib/postgresql/16/bin/postgres
|
|
register: postgres_installed
|
|
|
|
- name: Stop PostgreSQL if it's running
|
|
systemd:
|
|
name: postgresql
|
|
state: stopped
|
|
when: postgres_installed.stat.exists
|
|
ignore_errors: yes
|
|
|
|
- name: Include PostgreSQL role
|
|
include_role:
|
|
name: postgresql
|
|
|
|
- name: Verify PostgreSQL is running
|
|
systemd:
|
|
name: postgresql
|
|
state: started
|
|
register: postgres_status
|
|
|
|
- name: Show PostgreSQL status
|
|
debug:
|
|
var: postgres_status
|
|
|
|
- name: Test database connection
|
|
postgresql_ping:
|
|
db: aprsme_prod
|
|
login_user: aprsme
|
|
login_password: "{{ vault_postgresql_aprsme_password }}"
|
|
become_user: postgres
|
|
register: db_ping
|
|
ignore_errors: yes
|
|
|
|
- name: Show database connection status
|
|
debug:
|
|
var: db_ping |