AWX
AWX is used in my Homelab to run Ansible content against devices.
Deployment
AWX is deployed via the AWX Operator on Kubernetes. I'm running version 2.19.1
of the operator.
I have a single node K3s VM on my Proxmox VE cluster which I deployed using OpenTofu. The K3s deployment is done via an Ansible Playbook.
The awx-on-k3s project is used to deploy the AWX Operator and AWX Custom Resource Definition (CRD) on the K3s cluster. I use an Ansible playbook to prepare the K3s node for the AWX deployment.
Next, I perform the following steps to deploy AWX:
-
SSH to the K3s node:
-
Deploy the AWX Operator:
-
Configure the ingress in
base/awx.yml
to use theClusterIssuer
for Cloudflare: -
Configure the PostgreSQL and AWX admin credentials in
base/kustomization.yaml
:--- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: awx generatorOptions: disableNameSuffixHash: true secretGenerator: - name: awx-postgres-configuration type: Opaque literals: - host=awx-postgres-15 - port=5432 - database=awx - username=awx - password=<Password> - type=managed - name: awx-admin-password type: Opaque literals: - password=<Password>
-
Deploy the AWX CRD:
Configuration
An Ansible playbook is used to configure AWX with the Execution Environment, credentials, project, inventories and Discord notification template.