Ansible AWX Tutorial
Ansible AWX is the open-source version of Ansible Tower, which is now Ansible Automation Controller which is part of the Ansible Automation Platform.
Both AWX and Ansible Tower/AAP are web-based solutions for managing Ansible, but there are some differences between them, primarily in terms of support and certain features.
Ansible AWX Install
For a detailed overview on how to install Ansible AWX please check
Ansible AWX Install Guide on Ubuntu using Kubernetes or Docker
Basic requirements are:
- System installed with Linux
- 2 x CPU & 4GB RAM at least 40GB storage
- You can use m4.large instance on AWS
Ansible AWX Documentation
The Ansible AWX documentation can be found here
https://docs.ansible.com/ansible/latest/collections/awx/awx/index.html
or
https://ansible.readthedocs.io
Ansible AWX vs Tower / AAP
Just to clarify on the terms Ansible AWX is the open source upstream version of what was Ansible Tower which is now called Ansible Automation Controller, which is party of the Ansible Automation Platform.
What are the advantages and disadvantages of using Ansible AWX
The primary advantage of using Ansible AWX is that it is open source and hence free to use, the main disadvantage is that you will be running without the support and stability that comes with a using the supported product like Ansible Automation Platform
Other benefits of using Ansible AWX over the CLI version of Ansible are
- Provides a central location to run Ansible playbooks instead of different engineers laptops. This ensures consistent and audited playbook operations.
- Centralised control node which can log automation events and also track successful and failed playbook runs.
- Better security management, you can connect AWX to AD or another credential management system and also delegate permissions as to who can run playbooks whilst hiding secrets. i.e. you could give a helpdesk operator the permission to run a playbook without exposing them to be able to edit the playbook or view any of the secrets.
- It also provides a REST API so you can integrate Ansible AWX with other tools.
Ansible AWX Terms
Once you have installed and logged into Ansible AWX you are faced with an empty screen which should look something like this

The main place we are going to focus on is under the Resources section.
Firstly the Jobs section will show you where every job has been run.
AWX Templates
Ansible AWX templates also known as job templates, are configurations within the Ansible AWX platform that define how Ansible playbooks are executed.
A job template in Ansible AWX consists of various parameters and settings that specify how a particular Ansible playbook should be executed. These settings can include:
- Inventory: Specifies the hosts or groups of hosts that the playbook should target. AWX allows for dynamic inventory management, enabling the use of scripts or external sources to generate the inventory dynamically.
- Credentials: Defines the credentials needed to authenticate with the target hosts, such as SSH keys, usernames, and passwords.
- Playbook: Specifies the Ansible playbook that should be executed. This can either be a playbook stored within the AWX project or a playbook fetched from an external source, such as a Git repository.
- Limit: Optionally restricts the execution of the playbook to a subset of hosts within the inventory.
- Extra Variables: Allows passing additional variables to the playbook, which can be used to customize its behavior dynamically.
- Verbosity Level: Specifies the level of detail for the output generated during playbook execution.
- Timeouts: Defines the maximum duration allowed for playbook execution before it is considered failed.
- Notification Settings: Configures how notifications should be handled upon playbook completion, including email notifications or triggering webhooks.
By creating and configuring job templates in Ansible AWX, users can define standardized procedures for executing Ansible playbooks across their infrastructure. This helps streamline automation workflows, improve repeatability, and facilitate collaboration among team members working on infrastructure automation tasks. Additionally, AWX provides features for scheduling playbook execution, tracking job status, and auditing playbook runs, enhancing visibility and control over automation processes.
AWX Credentials
Credentials are where you create your GitHub credentials to pull down playbooks and also where you add credentials to log into network devices or logging into Galaxy.
AWX Projects
An Ansible AWX Project refers to the organisational structure within the Ansible AWX platform where Ansible playbooks, inventories, and related files are stored and managed. Ansible AWX is an open-source web-based interface for managing Ansible projects, playbooks, and tasks. It provides a centralized location for storing and orchestrating Ansible automation workflows, making it easier to collaborate on infrastructure management tasks.
Here are the key components and functionalities of an Ansible AWX Project:
- Playbooks: Playbooks are YAML files that define a series of tasks to be executed by Ansible on target hosts. In AWX Projects, playbooks are stored and version-controlled, allowing users to manage and update automation logic efficiently.
- Inventories: Inventories in Ansible AWX Projects define the hosts and groups of hosts that Ansible should manage. They can be static, specifying a list of hosts manually, or dynamic, generated dynamically using external sources such as cloud providers or inventory scripts.
- Variables: Projects can include variable files that contain data used by playbooks during execution. These variables can be defined at different levels, including playbook-level variables, group variables, and host variables.
- Credentials: AWX Projects can include credentials used to authenticate with target hosts. These credentials can be SSH keys, usernames, passwords, or other authentication methods required for accessing and managing hosts.
- Source Control Integration: Ansible AWX integrates with version control systems like Git, allowing projects to be synchronized with external repositories. This enables collaboration, version tracking, and change management for Ansible automation assets.
- Permissions and Access Control: AWX Projects support role-based access control (RBAC), allowing administrators to define user roles and permissions for accessing and modifying project resources. This ensures security and compliance by restricting access to sensitive infrastructure components.
- Job Templates: Job Templates are configurations within AWX Projects that define how Ansible playbooks should be executed. They specify parameters such as inventory, credentials, playbook, and other settings required for playbook execution.
Overall, Ansible AWX Projects provide a structured and centralised environment for managing Ansible automation assets, facilitating collaboration, version control, and streamlined execution of infrastructure automation workflows. They serve as the foundation for building and orchestrating complex automation solutions in IT environments of all sizes.
AWX Inventories
Inventories are either static or dynamic providing details of the hosts you want to automate.
AWX Hosts
AWX API
One of the main benefits of using AWX is the API, you can drive AWX via it’s API which opens up a great deal of options for your automations.
AWX Playbook Example
The demo will show how to get an Ansible Playbook into AWX and run, the playbook it will consist of the following steps.
1. Creating first AWX Project
2. Integrating GitHub Repo to AWX
Red Hat Ansible Automation Platform vs AWX
If you want to learn more about Ansible AWX you can check out my Ansible Network Automation Course – which is part of my Network Automation Course Bundle
Ansible AWX Frequently asked questions
What is Ansible AWX used for?
Ansible AWX is used to manage Ansible Playbooks, Inventories, Credentials, and secrets between your team, it allows you to run Ansible playbooks from a WEB UI or API interface.
What is the difference between Ansible and AWX?
Ansible is the CLI version which you can run playbooks manually from the CLI and Ansible AWX is the open source upstream version of Ansible Automation Controller allowing you to run playbooks from a WEB UI or Rest API and AWX also allows you to control access to playbooks and credentials via RBAC.
What are the disadvantages of Ansible AWX?
The only real disadvantage of Ansible AWX is that it has no official support, any support is via the community.
What is the difference between Ansible AWX and Terraform?
Terraform is a tool designed specifically for provisioning of cloud infrastructure using state files, Ansible AWX is a tool to run Ansible Playbooks via a Web UI or Rest API, whilst they perform similar functions they are completely different tools.
What is the benefit of AWX?
The main benefit of AWX is that it provides a user-friendly interface to manage Ansible playbooks, inventories, and schedule jobs. The other major benefit is that it is open source and hence free to use.
What is the difference between AWX and Automation Controller?
Ansible AWX is the open source upstream project of Ansible Automation Controller. The main difference is that Ansible Automation Controller is fully supported by Red Hat whilst Ansible AWX has no official support and any support is obtained via the Ansible community.
How often is Ansible AWX released?
The typical release schedule for Ansible AWX is every 2 weeks.
Ansible AWX
What are the advantages of AWX vs Tower?
The primary advantage of AWX vs Tower is AWX is free and also you have all of the enterprise features for an unlimited number of nodes. Ansible AWX is the upstream open source version of Tower so contains all the features of Tower but with the disadvantage that you have no support, so all issues you face using AWX have to be supported by the community, if you install Tower a subscription based version from Red Hat you get support from Red Hat.
Is AWX the same as Tower?
AWX is the open source version of Tower, once installed it is operationally the same as Tower, which is the commercial version of AWX and offers additional features and support through a subscription like Automation Hub and Certified Collections.
What is the difference between AWX and automation controller?
AWX is the upstream open source version of Ansible Automation controller, which is part of the Ansible Automation Platform. AWX is designed to be a frequently released upstream project where all the development happens.
Automation controller is then developed by features in AWX and security hardened providing the automation controller stable version.
What is the benefit of AWX?
Is AWX and Ansible Tower the same?
What is the difference between AWX and Ansible?
What are the disadvantages of Ansible AWX?
What is the equivalent of an Ansible inventory in the AWX world?
The Ansible Inventory is a list of hosts to be automated by Ansible and stored in a text file. Within AWX it uses the same file.
Ansible Automation Platform vs Ansible AWX
Is Ansible AWX Free?
Ansible AWX is free to install and use as there are no license restrictions which is great for a lab or POC, but if you are looking at using Ansible AWX in production be aware of hidden costs like support to keep the platform operational, compared to Ansible Automation Platform which comes with support from Red Hat.
Ansible AWX Documentation
The Ansible AWX Documentation can be found here – https://ansible.readthedocs.io/projects/awx/en/latest/
Ansible AWX API
For some Ansible AWX API Examples including how to pull Inventory & how get get an API token
Check out this post – 10 Ansible AWX API Examples
What is the difference between Templates and Projects in AWX?
Ansible AWX Projects
Projects in AWX are used to:
- Define the source of your Ansible playbooks and related files
- Connect to version control systems (like Git repositories) to fetch playbook content
- Manage playbook updates and syncing
Key aspects of projects include:
- They specify where AWX should look for playbooks, roles, and other Ansible content
- Projects can be linked to Git repositories for version control
- They allow for easy updating of playbook content by syncing with the source repository
Ansible AWX Templates
Templates in AWX, on the other hand, are used to:
- Define how a specific job or workflow should be executed
- Specify which playbook to run from a project
- Set variables, credentials, and other parameters for job execution
Key aspects of templates include:
- They reference a specific project to use for playbook content
- Templates define the inventory, credentials, and other settings for job execution
- They can be used to create reusable job definitions
Job Templates
Job templates are used for running individual playbooks
They consist of:
- A reference to a specific playbook within a project
- Inventory selection
- Credential configuration
- Other job-specific parameters
Workflow Templates
Workflow templates allow for more complex automation by:
- Chaining multiple job templates together
- Creating conditional paths based on job outcomes
- Orchestrating complex multi-step processes
In summary, projects manage the source of your Ansible content, while templates define how that content should be executed as jobs within AWX. Projects provide the “what” (the playbooks and roles), and templates provide the “how” (the execution parameters and workflow)
Ansible AWX Backup
Docker Compose
Ansible AWX Server
Ansible AWX, an open-source project developed by Red Hat, has become a cornerstone in the world of automation and DevOps. It’s built on top of Ansible, providing a web-based user interface and REST API for managing Ansible projects, inventories, and playbooks.
AWX serves as the upstream project for Red Hat Ansible Automation Platform, offering enterprises a powerful tool for orchestrating complex IT environments.The community surrounding Ansible AWX is vibrant and constantly growing.
Contributors from various industries, including healthcare and financial sectors, collaborate to enhance its functionality and add new features. This open-source focus allows for rapid development and frequent releases, ensuring that AWX remains at the forefront of automation technology.
One of the key strengths of AWX is its ability to integrate with multiple platforms and sources. Users can connect their AWX instances to various version control repositories, such as GitHub or GitLab, to manage their Ansible projects. This integration facilitates a seamless DevOps workflow, allowing teams to review code changes and deploy updates efficiently.
AWX’s role-based access control (RBAC) is a crucial feature for enterprises that require fine-grained permissions. It allows administrators to define user roles and limit access to specific resources, projects, and inventories.
This functionality is particularly valuable for large organizations with complex hierarchies and strict security requirements. The execution environments in AWX provide a containerized approach to running Ansible playbooks. These environments can be customized to include specific requirements and dependencies, ensuring consistency across different deployment scenarios. Users can leverage Kubernetes operators to manage AWX deployments, making it easier to scale and maintain AWX instances in cloud-native environments.For those looking to learn AWX, the community offers a wealth of resources, including documentation, articles, and tutorials.
The project’s GitHub repository serves as a central hub for development, where users can review the source code, submit issues, and contribute to the project. The community also adheres to a code of conduct, fostering an inclusive and supportive environment for all contributors. While AWX is free and open-source, Red Hat offers an enterprise version with additional features and support through its Ansible Automation Platform. This subscription-based offering includes enhanced reporting, insights, and technical support, making it an attractive option for enterprises that require more robust solutions and dedicated assistance.AWX’s workflow capabilities allow users to create complex automation sequences, chaining together multiple playbooks and jobs.
This feature is particularly useful for orchestrating intricate DevSecOps processes, where security checks and compliance validations need to be integrated into the deployment pipeline.The project’s notification system keeps users informed about job statuses and system events. Administrators can set up various notification methods, including email, Slack, and custom webhooks, ensuring that the right people are alerted at the right time.
As AWX continues to evolve, it’s becoming an increasingly important tool in the DevOps toolkit. Its ability to manage and execute Ansible content at scale makes it invaluable for organizations of all sizes, from small startups to large enterprises. The project’s commitment to open-source principles and community-driven development ensures that it remains responsive to user needs and industry trends.For those who want to get involved, there are many ways to contribute to AWX. Whether it’s by submitting code, improving documentation, or participating in community discussions, every contribution helps to make AWX a more robust and feature-rich platform. The project welcomes contributors with various skills, from shell scripting to web development.
In conclusion, Ansible AWX represents a powerful solution for organizations looking to streamline their automation efforts. Its open-source nature, combined with the backing of Red Hat and a dedicated community, positions AWX as a leading choice for businesses seeking to enhance their DevOps practices and achieve greater operational efficiency.
Leave a Reply