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.

πŸš€ 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/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-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 Ansible

Category: installation

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

Browse all Ansible tutorials Β· AnsiblePilot Home