Categories

Category cover

Automation
155 posts

Category cover

Learning paths
119 posts

Category cover

CISO
22 posts

Category cover

Security
20 posts

Category cover

Notes
19 posts

Category cover

Personal Security
18 posts

Category cover

Infrastructure
12 posts

Category cover

OT/ICS
5 posts

Category cover

Books
3 posts

Category cover

UNetLab
3 posts

Category cover

Write-up
3 posts

Category cover

OSInt
2 posts

Category cover

My life
1 posts

Orchestrating playbooks with Ansible AWX

Andrea Dainese
March 22, 2025
Post cover

Ansible AWX is the open-source version from which Ansible Tower draws inspiration. Both AWX and Tower are orchestrators for Ansible playbook

Ansible AWX  is the open-source version from which Ansible Tower  draws inspiration. Both AWX and Tower are orchestrators for Ansible playbooks, allowing management of playbooks in the form of projects, credentials, schedules, and reports.

The installation of Ansible AWX is particularly complex and has changed multiple times over time. Currently, it requires a Kubernetes  environment which we will install on an Ubuntu Linux Server system.

Therefore, we need a system with the following specifications:

Docker

First, we install Docker   by following the official documentation .

Remove any packages related to previous versions:

apt-get purge docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc

Add the official Docker repository:

wget -qO- https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable"

Finally, install Docker:

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Minikube

Minikube  allows us to have a complete instance of Kubernetes within a single virtual machine.

So, let’s install Minikube:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

Then, with an unprivileged user but belonging to the docker group, we create the Kubernetes instance:

minikube start --cpus=4 --memory=6g --addons=ingress
minikube kubectl -- get nodes

For simplicity, let’s add an alias that allows us to use the kubectl command:

alias kubectl="minikube kubectl --"

Installing AWX

Check the AWX Operator repository  to see which tag we can use (2.16.1) and create the necessary files for the environment setup:

Then apply the changes:

kubectl apply -k awx/

Monitor the pod creation with the following command and wait for it to finish:

kubectl get pods -n awx -w

Then create the resource file:

And associate it with the previously created file:

Then apply the changes:

kubectl apply -k awx/

Continue reading the post on Patreon .