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.
---
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 ansibleStep 2: Clone the AWX Repository
git clone https://github.com/ansible/awx.git
cd awxStep 3: Deploy AWX
Run the AWX Installer with Ansible:
ansible-playbook -i inventory install.ymlOnce 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
---
🎯 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
EOFDocker Compose (development)
git clone https://github.com/ansible/awx.git
cd awx
make docker-compose-build
make docker-composeKey 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
- 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 -dKey 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/attributes
Credentials
Securely stores:- SSH keys and passwords
- Cloud provider tokens (AWS, Azure, GCP)
- Vault passwords
- SCM tokens (GitHub, GitLab)
- Custom credential types
AWX 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 scheduling
Architecture
┌─────────────┐
│ 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-composeREST 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
Category: installation
Watch the video: What is Ansible AWX? Open-Source Automation Platform Guide — Video Tutorial