Files
PFVCluster/awx/README.md
T
mrcharles 6c58671d15 docs: add Redmine ticket references to subsystem READMEs
Each component README now links to its corresponding Redmine tickets
(closed for completed work, open for pending items) for bidirectional
traceability between code and system of record.
2026-08-06 11:25:19 -05:00

99 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AWX — tsys-awx.knel.net
> **Redmine:** [#361](https://projects.knownelement.com/issues/361) (deployment, closed) · [#371](https://projects.knownelement.com/issues/371) (HTTPS/TLS, open)
Ansible AWX deployment on a dedicated k3s single-node VM.
**[→ Deployment Plan](DEPLOYMENT.md)** · **[→ Status](../../STATUS.md)**
## Access
| | |
|---|---|
| URL | `http://tsys-awx.knel.net` (LAN) or `http://100.91.39.53` (Tailscale) |
| Port | 80 (LoadBalancer via k3s ServiceLB) |
| User | `admin` |
| Password | `REDACTED_PASSWORD` (fleet standard) |
## Architecture
```
tsys-awx (VMID 600 on pfv-tsys6)
├── k3s v1.36.2+k3s1 (single-node, no Traefik)
├── AWX Operator 2.19.1 (manages the AWX lifecycle)
└── AWX instance "tsys-awx"
├── AWX web (UI/API)
├── AWX task (Celery workers)
├── PostgreSQL 15 (bundled, 8 GiB PVC on local-path)
├── Redis (ephemeral)
└── ServiceLB (binds port 80 to host IP)
```
## VM Resources
| Resource | Value |
|----------|-------|
| Host | pfv-tsys6 (2× Xeon E5530, 126 GB RAM) |
| vCPU | 4 (2 sockets × 2 cores) |
| RAM | 12 GB |
| Disk | 60 GB (D5 on tsys4 NFS) |
| OS | Debian 13 trixie |
| Network | 192.168.3.200 (LAN), 100.91.39.53 (Tailscale) |
## Files
| File | Purpose |
|------|---------|
| [`install-k3s.sh`](install-k3s.sh) | Install k3s single-node (no Traefik) |
| [`deploy-awx.sh`](deploy-awx.sh) | Deploy AWX Operator 2.19.1 + AWX instance |
| [`verify-awx.sh`](verify-awx.sh) | Verify deployment status + access |
| [`namespace.yaml`](namespace.yaml) | Kubernetes namespace manifest |
| [`awx-instance.yaml`](awx-instance.yaml) | AWX Custom Resource (CR) manifest |
## Deployment (from scratch)
```bash
# 1. Push scripts to VM
for f in awx/install-k3s.sh awx/deploy-awx.sh awx/verify-awx.sh \
awx/namespace.yaml awx/awx-instance.yaml; do
VM_IP=100.91.39.53 VM_USER=localuser bash tests/remote.sh vm \
"sudo tee /tmp/awx/$(basename $f) > /dev/null" < "$f"
done
# 2. Install k3s
VM_IP=100.91.39.53 VM_USER=localuser bash tests/remote.sh vm \
"sudo bash /tmp/awx/install-k3s.sh"
# 3. Deploy AWX
VM_IP=100.91.39.53 VM_USER=localuser bash tests/remote.sh vm \
"sudo bash /tmp/awx/deploy-awx.sh"
# 4. Verify
VM_IP=100.91.39.53 VM_USER=localuser bash tests/remote.sh vm \
"bash /tmp/awx/verify-awx.sh"
```
## Operating
```bash
# kubectl access
sudo k3s kubectl -n awx get pods
sudo k3s kubectl -n awx logs -f deployment/awx-operator-controller-manager
# Restart AWX instance
sudo k3s kubectl -n awx delete awx tsys-awx # operator will recreate
# Get admin password
sudo k3s kubectl -n awx get secret awx-admin-password -o jsonpath='{.data.password}' | base64 -d
```
## Known Issues
1. **kube-rbac-proxy image**: The AWX Operator 2.19.1 references
`gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0` which was removed from GCR.
The deploy script patches this to `quay.io/brancz/kube-rbac-proxy:v0.15.0`.
2. **Image pulls are slow**: First deployment pulls ~2 GB of container images.
Postgres image alone is ~400 MB and takes several minutes.
3. **Disk space**: AWX + k3s uses ~10 GB of the 60 GB disk. PostgreSQL data
grows over time — monitor `df -h /`.