The best way to learn is by constructing your own knowledge, not passively absorbing information. A lot of great projects are open source these days, including The AWX Project. At zero cost, you can build your automation skill set, increasing your chances at landing that next big promotion.

This post will cover how to setup Ansible AWX on Debian. I use a combination of Ansible and Terraform in the NetDevOps toolchain. These tools play a huge role in keeping my knowledge relevant as Tech progresses.

Ansible Tower VS AWX

Tower VS AWX

What is AWX?

So, maybe you have heard of this Linux Distro called Fedora. This is the fast moving upstream project for Red Hat Enterprise Linux (RHEL). Red Hat also funds CentOS which is essentially a clone of RHEL minus all Red Hat branding. This is kind of how AWX works upstream for the official Ansible Tower product.

Red Hat also announced CentOS Stream which sits between bleeding edge Fedora, and rock solid RHEL. Sitting somewhere in the middle, this would allow developers an easier path for getting their packages in RHEL.

How does it differ from Ansible Tower?

The AWX Project

  • Fast iterating with frequent releases
  • No paid enterprise support available
  • Direct in-place upgrades are not supported
  • Not recommended for use in Production
  • Licensed under Apache 2.0

AWX is a fantastic tool for the lab, testing, and demos. If you want to dip a toe into the Ansible Tower world without forking over the cash, look no further.

Ansible Tower

  • Commercial derivative of AWX
  • Longer release cycle aimed at long-term supportability
  • Fully supported and license based solution
  • In-place upgrade to latest version (from up to two major releases behind)
  • Recommended for use in Production

Ansible Tower is the reliable solution you want for the enterprise. Deployment may differ since you will likely make use of scale-out clustering for added redundancy and capacity.

Deployment Options

AWX runs as a containerized application using Docker images deployed to either OpenShift, Kubernetes, or Docker Engine.

Standalone Deployment with Debian + Docker

In the spirit of keeping this simple, I use Docker running on Debian Linux in the lab. I also run everything on virtual machines as snapshots are a beautiful thing. Any hypervisor should work - VMware Workstation, Oracle VirtualBox, ESXi, or even KVM. For this setup, I’ll be using VMware Workstation.

AWX Design

Why Debian?

My love for Linux started back in the 90s with Slackware. At some point or another, I tested out Debian and my wish for the perfect operating system was granted. For me it strikes the right balance between ease of use, stability, and airy minimalism. Using the Debian netinstall, you only install what you need. I have AWX running smoothly with:

  • Processor: 1
  • Memory: 2 GB
  • Hard Disk: 12 GB

Prerequisites

The official prerequisites for AWX can be found here. I’ll be using Debian 10 - Buster however any release >= 10 will work. At this point, Debian should be installed, running, and reachable.

If running in a virtual machine, a snapshot should be taken now. In the event anything goes wrong, this is an easy way to revert back to our beginning state.

Getting Started

Disclaimer: Downloading and executing scripts from the internet may potentially harm your machine. Make sure to review the source code before execution so that you have a good understanding of what is going to happen.

The Installer Script

The installer is pretty basic. It will make sure we are up to date, install some dependencies, clone the projects, set a few parameters, and start the install.

awx_install.sh

Running The Installer

1
2
3
4
5
6
7
8
# Go home!
cd ~/

# Install cURL
sudo apt-get install -y curl

# Run the installer
curl -sSL https://gist.githubusercontent.com/wcollins/caca9aa1c416d05379ab3638804e3dd6/raw/479e5e8d6d0f5a93db9f3ee0a6cd46d8ef310e6e/awx_install.sh | bash

Depending on host machine horsepower, this may take a few minutes. You should see progress as the installer deploys the containers.

Start Containers

Validation + Login

If using VMware Workstation with network adapter type: NAT, you can see what IP Address it gave you with /sbin/ifconfig. You should then be able to reach this IP from your host machine.

On the permanent instance I have up and running in the lab, I’m using GitHub Actions to build and release after each AWX software release. I use Linux KVM as a Type-1 hypervisor with a static IP of my choice assigned.

Launch AWX

We should now be able to login with default credentials for AWX. There are many best practice considerations we would work through for handling authentication in a production environment but for the lab, we just want to roll up our sleeves and dive in, right?

AWX Login

Conclusion

Don’t wait to get started with automation. If you wait, you may miss out on a great opportunity. With so much open source software available, there is no upfront cost other than a laptop powerful enough to run a few virtual machines.

In the land of network engineering, getting your feet wet with public cloud and automation can help you make that next big step in your career. There is currently a high-demand with low-supply for these skills in the network engineering space.