Skip to content

Matt Adam

Tech Blog

Menu
  • Home
  • Home Lab
    • Home Lab – Gen 1
    • Home Lab – Gen 2
    • Home Lab – Gen 3
  • VMware
    • VMware Cloud Foundation (VCF)
    • Avi Networks
  • Kubernetes
    • Openshift
    • K3s
    • Tanzu
      • Tanzu – TKGs (WCP)
      • Tanzu – TKG (TKGm)
    • Avi Kubernetes Operator (AKO)
  • About
  • Privacy Policy
Menu

Install AWX on Ubuntu 24

Posted on May 1, 2024 by Matt Adam

AWX is an open-source alternative to Red Hat Tower (Ansible Automation Platform). I’ve used both pretty extensively in the past, and since AWX is essentially free, I’ll be covering that product in the next few blogs.

AWX is very useful for automating application creation for load balancers. There are a few components that will be needed to automate app deployment, but this is definitely the first step. I’m going to publish a few blogs about automated app deployments using AWX and Avi.

Table of Contents

Toggle
  • Software Versions used in this demo
  • Deploy Ubuntu VM
  • Install Ubuntu from ISO
  • Install AWX on Ubuntu 24

Software Versions used in this demo

SoftwareVersion
OSUbuntu 24.04 LTS
AWX24.3.1
VMware vCenter8.0.2

Deploy Ubuntu VM

In order to install AWX, we need to deploy a VM. We’ll be using the latest stable release for Ubuntu, which at the time of writing is Ubuntu 24.04. Navigate to ubuntu’s website and download the ISO.

In vCenter, navigate to the Content Libraries and create a new content library, if you don’t already have one.

Upload the ubuntu iso file to the content library.

As the ubuntu iso is uploading to the content library, go ahead and deploy a new VM with the above specs.

  • CPU: 2
  • Memory: 4GB
  • Disk: 20GB (20GB minimum, I would recommend 50GB)
  • Network Adapter: a routable network, in my case VM Network.
– Disk Size –

I originally built this using a 20GB disk and it seemed to work for a few days. After logging back in about a week later, I was out of disk space. So I resized the VM and Ubuntu to 50GB and it seems things are working again. So I recommend over 20GB for this deployment.

When the VM is ready come back and select the CD/DVD drive as the ubuntu iso file. Make sure to check Connect at Power On.

Power on the VM

Install Ubuntu from ISO

After Ubuntu loads, we need to install the OS to the disk.

Click the image of Ubuntu to launce the remote console.

Navigate through the install steps, I’m not going to cover these since there are 1000s of guides on this topic, and it’s rather straightforward.

Once you’ve installed the OS, use the UI interface to set a static IP address (or just use the dhcp address).
Additionally, you will need to run a few commands to update and enable ssh.

sudo su
apt update
apt upgrade
apt-get install open-vm-tools-desktop -y
apt install git make -y
apt install ssh
systemctl enable ssh

You should be able to ssh into the ubuntu machine.

Install AWX on Ubuntu 24

Now that the base Ubuntu OS is ready to go, we can install any required packages and deploy AWX. First we’re going to install docker and prepare the environment to run minikube. Minikube will be used to deploy awx. I’m more or less following this guide here: https://www.linuxtechi.com/install-ansible-awx-on-ubuntu/#google_vignette

The docker install detailed steps can be found here: https://docs.docker.com/engine/install/ubuntu/

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

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

Next we need to install minikube. Very simple, just a few commands.

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

# exit out of su and back into the user ubuntu
sudo usermod -aG docker $USER && newgrp docker
minikube start --vm-driver=docker --addons=ingress

Next we need to install kubectl, to interact with the K8s cluster

sudo su
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

Finally we can deploy the AWX container via awx-operator. Make sure you exit from su, and back into the ubuntu user.

git clone https://github.com/ansible/awx-operator.git
cd awx-operator/
git checkout 2.16.1 # Or whatever the latest version is
export NAMESPACE=ansible-awx
make deploy
kubectl create -f awx-demo.yml -n ansible-awx

You can verify your pods and services as shown below.

kubectl get pods -n ansible-awx
kubectl get svc -n ansible-awx

Lastly we need to open up awx to connections from outside of the ubuntu server.

minikube service awx-demo-service --url -n ansible-awx
kubectl port-forward service/awx-demo-service -n ansible-awx --address 0.0.0.0 10445:80 &

Navigate to your browser on the IP address and port shown above: http://192.168.3.23:10445/#/login

You should see the above screen. the username is “admin” and to get your password, run the command below.

kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" -n ansible-awx | base64 --decode; echo

And that’s it.

AWX is up and running and ready to start automating jobs!

Social Media

  • LinkedIn
  • X
  • Bluesky
  • Mastodon

Recent Posts

  • Financial Solutions for ETF share classes
  • Power Consumption Tips for Efficient Home Labs: Save Energy, Save Money
  • Automating Deployments with Terraform in a Home Lab: A Simple Guide for Tech Tinkerers
  • Backup Strategies for Home Lab Data: A Beginner’s Guide to Keeping Your Files Safe
  • Home Lab Monitoring with Grafana and Prometheus: How to Track Your Systems Like a Pro
© 2026 Matt Adam | Powered by Minimalist Blog WordPress Theme