AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is the upstream project for Tower, a commercial derivative of AWX.
To install AWX, please view the Install guide.
To learn more about using AWX, and Tower, view the Tower docs site.
The AWX Project Frequently Asked Questions can be found here.
- This repo was forked from the official AWX repo.
- This was to customize the contents. Please refer to the official documentation otherwise.
- This expects External-DNS to be installed to your cluster. You can figure this on k8s and AWS via the external-dns repo.
- Edit the namespace and context for kubernetes / helm in
installer/inventory
- Install pip modules:
pip install -r requirements.txt
- Setup PostgreSQL:
- We use the helm chart from Charts/postgresql.
- Edit the following values in the
values.yaml
file:
20 ## Default: postgres
21 postgresUser: admin
22 ## Default: random 10 character string
23 postgresPassword: abc123
- Also, update persistent storage settings within
values.yaml
custom to your specific use case:
52 persistence:
53 enabled: true
54
55 ## A manually managed Persistent Volume and Claim
56 ## Requires persistence.enabled: true
57 ## If defined, PVC must be created manually before volume will be bound
58 # existingClaim:
59
60 ## database data Persistent Volume Storage Class
61 ## If defined, storageClassName: <storageClass>
62 ## If set to "-", storageClassName: "", which disables dynamic provisioning
63 ## If undefined (the default) or set to null, no storageClassName spec is
64 ## set, choosing the default provisioner. (gp2 on AWS, standard on
65 ## GKE, AWS & OpenStack)
66 ##
67 storageClass: "general"
68 accessMode: ReadWriteOnce
69 size: 30Gi
70 subPath: "postgresql-db"
71 mountPath: /var/lib/postgresql/data/pgdata
- Now update your
./installer/inventory
postgres paramters to reflect whatever you put in above:
60 # Set pg_hostname if you have an external postgres server, otherwise
61 # a new postgres service will be created
62 pg_hostname=postgres-postgresql.default.svc.cluster.local
63 pg_username=admin
64 pg_password=abc123
65 pg_database=awx
66 pg_port=5432
- Now install postgres:
helm install --name postgres stable/postgresql -f values.yaml
- Run:
ansible-playbook -i inventory installer/install.yml