infra/home/ansible/postgresql-pre-check-via-proxmox.yml
2025-09-08 10:13:45 -05:00

73 lines
No EOL
2.2 KiB
YAML

---
- name: Pre-upgrade checks for PostgreSQL via Proxmox
hosts: lab02 # Proxmox host
become: yes
gather_facts: no
vars:
container_id: 300
tasks:
- name: Check if container is running
command: pct status {{ container_id }}
register: container_status
changed_when: false
- name: Display container status
debug:
var: container_status.stdout
- name: Check current PostgreSQL version
command: pct exec {{ container_id }} -- sudo -u postgres psql -t -c "SELECT version();"
register: pg_version
changed_when: false
- name: Display current version
debug:
msg: "Current version: {{ pg_version.stdout }}"
- name: List PostgreSQL clusters
command: pct exec {{ container_id }} -- pg_lsclusters
register: pg_clusters
changed_when: false
- name: Display clusters
debug:
var: pg_clusters.stdout_lines
- name: Check disk space in container
command: pct exec {{ container_id }} -- df -h /var/lib/postgresql
register: disk_space
changed_when: false
- name: Display disk space
debug:
var: disk_space.stdout_lines
- name: List installed PostgreSQL packages
command: pct exec {{ container_id }} -- dpkg -l | grep postgresql
register: pg_packages
changed_when: false
- name: Display PostgreSQL packages
debug:
var: pg_packages.stdout_lines
- name: Get database sizes
command: |
pct exec {{ container_id }} -- sudo -u postgres psql -t -c "SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database WHERE datname NOT IN ('template0', 'template1') ORDER BY pg_database_size(pg_database.datname) DESC;"
register: db_sizes
changed_when: false
- name: Display database sizes
debug:
var: db_sizes.stdout_lines
- name: Check active connections
command: |
pct exec {{ container_id }} -- sudo -u postgres psql -t -c "SELECT count(*) as connections, datname FROM pg_stat_activity GROUP BY datname ORDER BY connections DESC;"
register: active_connections
changed_when: false
- name: Display active connections
debug:
var: active_connections.stdout_lines