Files

Local PostgreSQL AWX setup

This directory keeps the local configuration used to expose the PostgreSQL delivery playbook through AWX. Files ending in .env are ignored; their .env.example counterparts document the supported parameters.

The local object mapping is:

AWX object Local value
Project XINFRA PostgreSQL Project
Project source local ansible/, committed into AWX task pod local Git
Inventory XINFRA PostgreSQL Inventory
Inventory host postgresql-218-11-5-224 -> public 218.11.5.224, SSH via 192.168.1.5
Machine credential XINFRA PostgreSQL SSH, user root
Private key /Users/lx/xengineer-cs2.pem
Secret credential XINFRA PostgreSQL Runtime Secrets
Job Template XINFRA PostgreSQL Delivery
Playbook postgresql-deploy.yml
Rollback Template XINFRA PostgreSQL Rollback
Rollback Playbook postgresql-rollback.yml
Instance Group xinfra-e2e-execution

Run the idempotent setup whenever the AWX task pod restarts or the local playbook changes. This AWX installation has project persistence disabled and cannot use a Manual Project, so the Project is Git-backed with launch updates disabled. The script refreshes a local Git source inside the AWX task pod and runs a project update so AWX rebuilds its playbook index.

The setup output includes DELIVERY_POSTGRESQL_ROLLBACK_TEMPLATE_ID; copy that value into config/local/server-postgresql.env before starting the scheduler. PostgreSQL CloudDM registration is optional and requires the dedicated URL, API token, username, and password documented in the server env example. The CloudDM password must match the PostgreSQL administrator password configured in the AWX runtime credential.

./scripts/setup-postgresql-awx.sh

Start the backend with AWX delivery scheduling enabled:

./scripts/run-server-postgresql-local.sh

Then start the frontend and open /service/catalog/pgsql. Select XINFRA PostgreSQL Delivery as the target. The inventory currently contains one host, so only standalone can be deployed until more distinct inventory hosts are added.

The frontend dev server listens on http://127.0.0.1:5173. Port 3000 is reserved for the local authserver MySQL container and must not be used by Vite. Set XINFRA_BACKEND_PROXY_TARGET only when the backend is listening on a non-default address.

The AWX HTTP API is http://127.0.0.1:59123. Local port 59121 is Minikube SSH and must not be used as AWX_BASE_URL.