Install AWX on Minikube: Full Ansible GUI Setup Guide
Abotts Logo Abotts Partners with singapore based tech giant to help migrate their public sector customer from Sybase to SQL server.
Upworks Logo Abotts successfully decouples and migrates Upwork EBS custom schema to oracle cloud.
Abotts Logo ABOTTS partners with County in Los Angeles to upgrade their court infrastructure into new technologies.
Upworks Logo Upworks Inc partners with ABOTTS to build their Oracle Cloud Infrastructure (OCI) and migrate their custom applications to OCI.
QuinStreet Logo QuinStreet partners with Abotts to archive and manage their IT systems on Oracle cloud (OCI).
Gnorth Logo Abotts Inc Partners with Gnorth consulting to deploy exadata and ODA for a large public sector customer.
Abotts Logo Abotts Partners with singapore based tech giant to help migrate their public sector customer from Sybase to SQL server.
Upworks Logo Abotts successfully decouples and migrates Upwork EBS custom schema to oracle cloud.
Abotts Logo ABOTTS partners with County in Los Angeles to upgrade their court infrastructure into new technologies.
Upworks Logo Upworks Inc partners with ABOTTS to build their Oracle Cloud Infrastructure (OCI) and migrate their custom applications to OCI.
QuinStreet Logo QuinStreet partners with Abotts to archive and manage their IT systems on Oracle cloud (OCI).
Gnorth Logo Abotts Inc Partners with Gnorth consulting to deploy exadata and ODA for a large public sector customer.

Introduction

Ansible AWX is a free and open-source web application that provides a user-friendly interface for managing Ansible playbooks and inventories. It also includes a REST API for automating Ansible operations. AWX serves as the open-source version of Red Hat Ansible Tower.

To deploy AWX, a Kubernetes infrastructure such as MicroK8s, K3s, or Minikube is required.

Pre-requisites

Ensure the following system requirements are met before installation:

  • RAM: 8 GB
  • CPU: 3.4 GHz (2 Cores)
  • Disk: 20 GB of available storage
  • Internet: Stable internet connection

Step-by-Step Installation

1. Install Required Packages

Ensure your Ubuntu system is up-to-date and install the necessary dependencies:

sudo apt update && sudo apt upgrade -y

sudo apt install -y curl wget apt-transport-https 

Sudo apt install git make -y

2. Install Docker

Install Docker Engine to run containers required by Minikube and AWX:

sudo apt install -y docker.io

sudo systemctl enable docker

sudo usermod -aG docker $USER

newgrp docker

3. Install Minikube

Download and install Minikube, a local Kubernetes cluster:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

sudo install minikube-linux-amd64 /usr/local/bin/minikube

Install kubectl:

sudo curl -LO “https://dl.k8s.io/release/v1.30.1/bin/linux/amd64/kubectl”

sudo chmod +x kubectl

sudo mv kubectl /usr/local/bin/

4. Clone AWX Operator

Clone the AWX Operator repository to deploy AWX:

git clone https://github.com/ansible/awx-operator.git

cd awx-operator

Check out a stable version:

git checkout <version>

5. Deploy the AWX Operator

AWX Operator Deployment via make deploy in Ansible Namespace. Create a custom resource YAML file (e.g., awx-deploy.yaml):

export NAMESPACE=ansible-awx

make deploy

6. Start Minikube

Start your Minikube cluster with Docker as the driver:

minikube start –driver=docker –addon=ingress

7. AWX Operator: Namespace-Based Deployment Using Makefile

AWX Instance Deployment via Custom YAML in the ansible-awx Namespace:

vi awx-ubuntu.yml

apiVersion: awx.ansible.com/v1beta1

kind: AWX

metadata:

  name: awx-ubuntu

spec:

  service_type: nodeport

Apply the deployment:

kubectl apply -f awx-deploy.yaml -n ansible-awx

Check the pods and service.

kubectl get pods -n ansible-awx

kubectl get svc -n ansible-awx

7. Access AWX Web Interface

minikube service awx-service -n ansible-awx –url

Opening through localhost:

forwards port 80 of the AWX service to your local port 10445.

kubectl port-forward service/awx-ubuntu-service -n ansible-awx –address 0.0.0.0 10445:80 > /dev/null &

8. Get Admin Credentials

Retrieve the admin password:

kubectl get secret awx-admin-password -n ansible-awx -o jsonpath=”{.data.password}” | base64 –decode

Log in with:

  • Username: admin
  • Password: (output from above command)

After giving the valid username and password, it  will redirect to home page