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

3.2 KiB
Raw Blame History

AWX — tsys-awx.knel.net

Redmine: #361 (deployment, closed) · #371 (HTTPS/TLS, open)

Ansible AWX deployment on a dedicated k3s single-node VM.

→ Deployment Plan · → Status

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 single-node (no Traefik)
deploy-awx.sh Deploy AWX Operator 2.19.1 + AWX instance
verify-awx.sh Verify deployment status + access
namespace.yaml Kubernetes namespace manifest
awx-instance.yaml AWX Custom Resource (CR) manifest

Deployment (from scratch)

# 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

# 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 /.