feat(delivery): integrate PostgreSQL delivery

This commit is contained in:
l x
2026-07-31 10:30:03 +08:00
parent 048ac6507e
commit 66fde73792
25 changed files with 2110 additions and 139 deletions
+49
View File
@@ -0,0 +1,49 @@
# 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` |
| 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.
```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`.