Files

59 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

# 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.
```bash
./scripts/setup-postgresql-awx.sh
```
Start the backend with AWX delivery scheduling enabled:
```bash
./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`.