AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

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? Open-Source Automation Platform Guide

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 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)

---

🎯 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

FeatureAWXTower (legacy)AAP
CostFreePaid subscriptionPaid subscription
SupportCommunity onlyRed Hat supportRed Hat support
UpdatesFrequent (upstream)Quarterly releasesRegular releases
StabilityDevelopment paceTested/stableEnterprise stable
FeaturesLatestSubset of AWXAWX + extras
InstallKubernetes/DockerRPM/installerOperator/installer

Installing AWX

# 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

ConceptDescription
ProjectGit repo containing playbooks
InventoryHosts and groups to manage
CredentialSSH keys, cloud tokens, vault passwords
Job TemplatePlaybook + inventory + credentials combo
WorkflowChain of job templates with logic
OrganizationTop-level grouping for RBAC
TeamGroup 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/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)

FeatureAWXAAP
CostFree (open-source)Red Hat subscription
SupportCommunity onlyRed Hat support
UpdatesContinuous releasesStable releases
ClusteringBasicFull 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)

RolePermissions
AdminFull access
AuditorRead-only everything
ExecuteLaunch jobs
Project AdminManage projects
Inventory AdminManage inventories
Credential AdminManage 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

FeatureAWXAAP (Red Hat)
CostFree/Open SourceSubscription
SupportCommunityRed Hat Support
UpdatesFrequent (can break)Tested releases
Certification✅ Certified content
ClusteringBasicEnterprise HA
Use caseDev/small teamsEnterprise

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-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.

Category: installation

Watch the video: What is Ansible AWX? Open-Source Automation Platform Guide — Video Tutorial

Browse all Ansible tutorials · AnsiblePilot Home