What is Ansible AWX? Open-Source Automation Platform Guide
By Luca Berton Β· Published 2024-01-01 Β· Category: installation
What is Ansible AWX? Understand the open-source automation platform. Compare AWX vs AAP, explore features, architecture, and use cases for enterprise.

What is Ansible AWX?
AWX is the Open Source upstream project of the Ansible Automation Controller, which is part of the Ansible Automation Platform (formerly known as Ansible Tower).
AWX provides a modern web UI and API to help teams manage Ansible Playbooks, Inventories, Vaults, and Credentials in an organized way.
If you're interested in learning about the latest features before they reach the Ansible Automation Platform, you should look at AWX. However, keep in mind that AWX has a different release cycle and support model.
π I'm Luca Berton, and welcome to today's episode of Ansible Pilot.
---
See also: Build Ansible AWX in Docker Containers Easily
π Ansible AWX vs. Ansible Automation Platform
Here are the key differences between Ansible AWX and the Ansible Automation Platform: β’ Apache License 2.0 (Open-source) β’ AWX is community-supported, whereas Ansible Automation Platform is supported by Red Hat β’ New builds approximately every two weeks (AWX follows a faster release cycle)
β Key Features of AWX:
β’ A modern web-based UI for Ansible β’ Role-based access control (RBAC) for better security β’ Job scheduling and execution tracking β’ REST API support for automation β’ Dynamic inventories from cloud providers (AWS, GCP, Azure) β’ Logging and monitoring tools---
π How to Install Ansible AWX
Step 1: Install Dependencies
Ensure your system has Docker, Kubernetes, or OpenShift, and install Ansible:
sudo yum install -y epel-release
sudo yum install -y git ansible
Step 2: Clone the AWX Repository
git clone https://github.com/ansible/awx.git
cd awx
Step 3: Deploy AWX
Run the AWX Installer with Ansible:
ansible-playbook -i inventory install.yml
Once installation is complete, access AWX Web UI via:
π http://localhost:80
Login with default credentials:
π Username: admin
π Password: password
---
See also: Create Ansible AWX Superuser in Docker: Admin Account Setup (Guide)
π Useful Links
β’ π Red Hat Ansible AWX Project β’ π AWX GitHub Repository β’ π AWX Official Documentation---
π― Conclusion
Now you understand what Ansible AWX is, how it compares with Ansible Automation Platform, and how it can help automate and manage Ansible Playbooks at scale.
π‘ Next Steps: β’ Try AWX in your environment β’ Explore the Web UI and API β’ Start scheduling and managing Playbooks efficiently
See also: Install Ansible AWX Operator for Kubernetes (K8s) and OpenShift (OCP) - Ansible AWX
AWX Overview
AWX is the free, open-source upstream project for Red Hat Ansible Automation Platform (formerly Ansible Tower). It provides: β’ Web UI for managing Ansible playbooks β’ REST API for programmatic access β’ Role-Based Access Control (RBAC) β’ Job scheduling and templating β’ Inventory management (static and dynamic) β’ Credential management (encrypted storage) β’ Notifications (Slack, email, webhook) β’ Workflow automation (chain multiple playbooks)
AWX vs Ansible Tower vs AAP
| Feature | AWX | Tower (legacy) | AAP | |---------|-----|----------------|-----| | Cost | Free | Paid subscription | Paid subscription | | Support | Community only | Red Hat support | Red Hat support | | Updates | Frequent (upstream) | Quarterly releases | Regular releases | | Stability | Development pace | Tested/stable | Enterprise stable | | Features | Latest | Subset of AWX | AWX + extras | | Install | Kubernetes/Docker | RPM/installer | Operator/installer |
Installing AWX
AWX Operator (recommended)
# Install AWX Operator on Kubernetes
kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/main/deploy/awx-operator.yaml
# Create AWX instance
cat <<EOF | kubectl apply -f -
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
spec:
service_type: NodePort
EOF
Docker Compose (development)
git clone https://github.com/ansible/awx.git
cd awx
make docker-compose-build
make docker-compose
Key Concepts
| Concept | Description | |---------|-------------| | Project | Git repo containing playbooks | | Inventory | Hosts and groups to manage | | Credential | SSH keys, cloud tokens, vault passwords | | Job Template | Playbook + inventory + credentials combo | | Workflow | Chain of job templates with logic | | Organization | Top-level grouping for RBAC | | Team | Group of users with shared permissions |
When to Use AWX
Use AWX when you need: β’ Multiple users running playbooks (RBAC) β’ Scheduled automation (cron-like) β’ Audit trail of all automation runs β’ REST API for CI/CD integration β’ Centralized credential management
Stick with CLI when: β’ Single operator / small team β’ Simple ad-hoc tasks β’ No need for scheduling or RBAC
FAQ
Is AWX production-ready?
AWX is used in production by many organizations, but it follows upstream development pace. For enterprise support and guaranteed stability, use Red Hat AAP.
Can I migrate from AWX to AAP?
Yes - AAP is based on AWX. Migration involves exporting/importing configurations, but the concepts are identical.
Does AWX support Windows automation?
Yes - AWX can manage Windows hosts via WinRM or SSH, just like command-line Ansible.
AWX Architecture
βββββββββββββββββββββββββββββββββββββββ
β AWX Web UI β
βββββββββββββββββββββββββββββββββββββββ€
β REST API β
βββββββββββββββββββββββββββββββββββββββ€
β Job Scheduler β Task Manager β
ββββββββββββββββββββΌβββββββββββββββββββ€
β Inventories β Credentials β
ββββββββββββββββββββΌβββββββββββββββββββ€
β Projects (Git) β Job Templates β
βββββββββββββββββββββββββββββββββββββββ€
β PostgreSQL Database β
βββββββββββββββββββββββββββββββββββββββ
Components: β’ Web UI β browser-based dashboard β’ REST API β full programmatic access β’ Task engine β runs playbooks via execution environments β’ PostgreSQL β stores configuration, job history, inventories β’ Redis β message broker for task queue
Install AWX (Kubernetes)
# Install AWX Operator
kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/devel/deploy/awx-operator.yaml
# Deploy AWX instance
cat <<EOF | kubectl apply -f -
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
spec:
service_type: NodePort
EOF
# Get admin password
kubectl get secret awx-admin-password -o jsonpath='{.data.password}' | base64 -d
Key Concepts
Job Templates
# Define what playbook to run, on which inventory, with which credentials
Job Template: "Deploy Web App"
βββ Project: my-playbooks (git repo)
βββ Playbook: deploy-webapp.yml
βββ Inventory: Production Servers
βββ Credential: SSH Key + Vault Password
βββ Extra Variables: { version: "2.5.0" }
Workflow Templates
[Update Code] β [Run Tests] βββ success βββ [Deploy Prod]
βββ failure βββ [Notify Team]
Inventories
β’ Static β manually defined hosts and groups β’ Dynamic β auto-sync from AWS, Azure, GCP, VMware, etc. β’ Smart β filter hosts based on facts/attributesCredentials
Securely stores: β’ SSH keys and passwords β’ Cloud provider tokens (AWS, Azure, GCP) β’ Vault passwords β’ SCM tokens (GitHub, GitLab) β’ Custom credential typesAWX vs AAP (Ansible Automation Platform)
| Feature | AWX | AAP | |---------|-----|-----| | Cost | Free (open-source) | Red Hat subscription | | Support | Community only | Red Hat support | | Updates | Continuous releases | Stable releases | | Clustering | Basic | Full HA | | Automation Hub | β | β Private Hub | | Analytics | β | β Automation Analytics | | EDA Controller | β | β Event-Driven | | Certification | β | β Certified Content | | LDAP/SAML | β | β | | RBAC | β | β (enhanced) |
REST API Examples
# List job templates
curl -u admin:password https://awx.example.com/api/v2/job_templates/
# Launch a job
curl -X POST -u admin:password \
https://awx.example.com/api/v2/job_templates/7/launch/ \
-H "Content-Type: application/json" \
-d '{"extra_vars": {"version": "2.5.0"}}'
# Check job status
curl -u admin:password https://awx.example.com/api/v2/jobs/42/
Schedule Jobs
# Cron-style scheduling in AWX UI
Every day at 2 AM: 0 2 * * *
Every Monday at 9 AM: 0 9 * * 1
Every 6 hours: 0 */6 * * *
RBAC (Role-Based Access Control)
| Role | Permissions | |------|------------| | Admin | Full access | | Auditor | Read-only everything | | Execute | Launch jobs | | Project Admin | Manage projects | | Inventory Admin | Manage inventories | | Credential Admin | Manage credentials |
FAQ
Is AWX production-ready?
AWX is used in production by many organizations. However, it lacks Red Hat support and HA clustering. For enterprise environments, consider AAP.
Can AWX replace cron for Ansible?
Yes β AWX provides scheduled jobs with logging, notifications, RBAC, and retry logic. Much better than cron for production automation.
How does AWX handle secrets?
Credentials are encrypted at rest using AES-256. They're injected at runtime and never exposed in job output.
AWX Overview
AWX is the open-source upstream of Red Hat Ansible Automation Platform (AAP). It provides: β’ Web UI for managing playbooks, inventories, and credentials β’ REST API for programmatic automation β’ Role-based access control (RBAC) for team collaboration β’ Job scheduling and workflow orchestration β’ Centralized logging and audit trail
AWX vs AAP
| Feature | AWX | AAP (Red Hat) | |---------|-----|---------------| | Cost | Free/Open Source | Subscription | | Support | Community | Red Hat Support | | Updates | Frequent (can break) | Tested releases | | Certification | β | β Certified content | | Clustering | Basic | Enterprise HA | | Use case | Dev/small teams | Enterprise |
Key Components
β’ Projects β Git repos containing playbooks β’ Inventories β Static or dynamic host lists β’ Credentials β SSH keys, cloud tokens, vault passwords β’ Templates β Preconfigured job definitions β’ Workflows β Chain multiple templates together β’ Schedules β Cron-like job schedulingArchitecture
βββββββββββββββ
β Web UI β
βββββββββββββββ€
β REST API β
βββββββββββββββ€
β Task Engineβ (runs playbooks)
βββββββββββββββ€
β Database β (PostgreSQL)
βββββββββββββββ€
β Redis β (message queue)
βββββββββββββββ
Install AWX
# AWX Operator (Kubernetes) β recommended
kubectl apply -f awx-operator.yml
# Docker Compose (development)
git clone https://github.com/ansible/awx.git
cd awx
make docker-compose-build
make docker-compose
REST API Example
# Launch a job template
curl -X POST https://awx.example.com/api/v2/job_templates/1/launch/ \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"extra_vars": {"env": "production"}}'
FAQ
Should I use AWX or AAP?
AWX for learning, small teams, non-critical workloads. AAP for enterprise with support, certified content, and SLA requirements.
Can AWX run in production?
Yes, but without Red Hat support. Many organizations run AWX in production successfully. Plan for self-managed upgrades and troubleshooting.
AWX vs running ansible-playbook from CLI?
AWX adds UI, RBAC, scheduling, audit logging, and credential management. CLI is simpler for individual use.
Related Articles
β’ secrets management with Ansible Vault β’ docker_container module walkthrough β’ Ansible inventory complete reference β’ AWS automation with AnsibleCategory: installation
Watch the video: What is Ansible AWX? Open-Source Automation Platform Guide β Video Tutorial