infra/ansible/setup-postgres-storage.yml
2025-08-02 11:14:56 -05:00

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