--- - 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