The Definitive Architecture and Evolution of Ansible AWX and Red Hat Ansible Automation Platform

The landscape of enterprise automation is fundamentally anchored by the relationship between the open-source community and commercial support, a synergy best exemplified by the evolution of Ansible AWX and the Red Hat Ansible Automation Platform (RHAAP). At its core, AWX serves as the open-source upstream project for what would eventually become the Red Hat Ansible Automation Platform. It is not merely a tool but a comprehensive management framework that transforms Ansible from a command-line execution engine into a scalable, enterprise-grade automation hub. By providing a sophisticated web-based user interface, a robust REST API, granular role-based access control (RBAC), and advanced job scheduling capabilities, AWX allows organizations to manage their Ansible playbooks with a level of precision and oversight that is impossible through manual CLI execution alone.

The transition from a simple automation tool to a platform involves a shift in how infrastructure is perceived. While standard Ansible relies on the local execution of playbooks, AWX introduces a centralized control plane. This plane acts as the authoritative source for automation tasks, providing a unified interface where IT teams can orchestrate complex workflows across thousands, or even millions, of endpoints. This capability is critical for modern IT environments that have expanded beyond traditional servers to include cloud platforms, containerized workloads, network devices, storage arrays, and Industrial IoT (IIoT) devices such as Programmable Logic Controllers (PLCs).

Historically, the project began with the development of Ansible Tower, which laid the foundation for the current ecosystem. The original architects designed the system to solve the problem of scale, ensuring that as an organization grew from managing hundreds to hundreds of thousands of servers, the automation remained auditable and traceable. However, as the industry moved toward cloud-native paradigms, the original monolithic architecture of Tower—and by extension, the early versions of AWX—became a bottleneck. The current era of AWX is defined by a move away from "lift-and-shift" containerization toward a true pluggable, service-oriented architecture. This evolution is designed to decouple the user interface, inventory management, and credential handling, allowing each component to scale and evolve independently without destabilizing the entire ecosystem.

Functional Capabilities and Core Components of AWX

The primary value proposition of AWX is its ability to act as a centralized hub for all automation tasks. It abstracts the complexity of the Ansible engine, providing a layer of management that is accessible to both highly technical engineers and general IT operations staff.

The most immediate benefit is the provision of a web-based User Interface (UI). This UI allows users to visually trigger playbooks, monitor job progress in real-time, and analyze the output of automation tasks without needing direct SSH access to the control node. Complementing the UI is a comprehensive REST API, which enables the programmatic orchestration of automation. This API is browsable and highly flexible, allowing external systems to trigger jobs or query the status of the infrastructure.

One of the most critical security features of AWX is its approach to credential management. In a standard Ansible environment, managing SSH keys or passwords across a large team can lead to security vulnerabilities. AWX solves this by allowing the sharing of SSH credentials through the platform. Users can be granted the permission to execute a playbook that uses a specific credential without ever seeing or possessing the actual private key or password. This separation of concerns ensures that sensitive data remains encrypted and secure while still enabling the automation to proceed.

Inventory management in AWX is equally sophisticated. Rather than relying solely on static text files, AWX allows for graphical inventory management. More importantly, it supports synchronization with a wide variety of cloud sources. This means AWX can dynamically query an AWS, Azure, or GCP environment to determine which instances are currently active and automatically update the inventory, ensuring that automation is always targeted at the current state of the infrastructure.

The platform also integrates deeply with corporate identity providers. Support for LDAP ensures that user authentication and group memberships are synchronized with the organization's central directory. This integration is the backbone of the Role-Based Access Control (RBAC) system, which allows administrators to define exactly who can access specific inventories, projects, or credentials, thereby preventing unauthorized changes to critical infrastructure.

The Transition to Service-Oriented Architecture

For over a decade, the architectural foundation of AWX and Ansible Tower remained largely monolithic. Even when these applications were moved into containers—such as the Ansible Operator on Red Hat OpenShift Container Platform—they remained "lifted and shifted" monoliths. This meant that the various services were bundled together in a tightly integrated codebase, creating a situation where modifying a single component could have unforeseen ripple effects across the entire system.

Starting with the release of AWX version 24.6.1 in July 2024, the project began a fundamental refactoring process. The goal is to transition into a pluggable, service-oriented architecture. This shift is not merely a technical update but a strategic realignment to meet modern cloud-native standards of modularity and flexibility.

The impact of this refactoring is evident in the breaking out of core functionalities. Specifically, the following components are being decoupled:

  • The User Interface (UI)
  • Inventory Management
  • Credential Types

By isolating these elements, the AWX team can focus on streamlining core functionalities and removing "bloat"—services that had expanded beyond the original scope of the product over the last ten years. This modular approach allows for faster iteration, easier updates, and a more resilient system where the failure of one service does not necessarily crash the entire automation hub.

The AWX Collection and Automation Integration

To facilitate the interaction between Ansible Playbooks and the AWX/Tower platforms, Red Hat introduced Ansible Content Collections. These collections are the modern mechanism for distributing modules, roles, and plugins.

The AWX Collection, identified as awx.awx, is the upstream community distribution available on Ansible Galaxy. For those using the supported commercial version, the ansible.tower collection is available via Automation Hub, specifically aligned with the release of Ansible Tower 3.7. These collections provide the programmatic means to create, update, or delete objects within AWX and to trigger jobs via playbooks.

Historically, these functionalities were handled by tower_* modules residing directly within the Ansible Core repository. However, these were migrated to the collection format starting in October 2019. This migration was necessary to allow for more frequent updates without needing to wait for a full release of Ansible Core.

A significant technical milestone in the evolution of these collections was the removal of the dependency on the tower-cli project. The tower-cli tool was previously a required library for the modules to function, but it has since been deprecated. The transition away from tower-cli required a major update to the AWX Collection. During this process, the development team prioritized backwards compatibility, ensuring that users who relied on the old tower_* modules in Ansible Core could migrate to the AWX Collection with minimal effort.

The benefits of the new AWX Collection include:

  • Standardized operational logic: Previously, modules were written by different authors with varying styles, leading to subtle behavioral differences. The new collection follows a strict standard pattern for consistency.
  • Parameter synchronization: Modules are now kept in sync with the options available in the web UI and the REST API.
  • Enhanced idempotency: Improved support for idempotency ensures that running a playbook multiple times does not change the system if the desired state has already been reached.
  • Check mode support: Better integration with check_mode allows users to predict the changes a playbook will make before actually executing them.

Comparison of AWX and Red Hat Ansible Automation Platform

While AWX and the Red Hat Ansible Automation Platform (RHAAP) share the same codebase, they serve different operational roles within an organization.

Feature AWX (Open Source) Red Hat Ansible Automation Platform (RHAAP)
License Open Source Commercial Subscription
Support Community-driven (Matrix, GitHub) Official Red Hat Support
Distribution Ansible Galaxy / GitHub Automation Hub
Stability Upstream/Experimental Validated/Enterprise-grade
Architecture Service-Oriented (Newer versions) Integrated Enterprise Solution
Target Audience Tech enthusiasts, developers, early adopters Large enterprises, regulated industries

The relationship is symbiotic: AWX serves as the laboratory where new features are developed and tested by the community, and RHAAP provides the hardened, supported version of those features for production environments where downtime is catastrophic.

Deployment and Configuration Framework

The deployment of AWX, particularly on RHEL 9, requires a structured approach to ensure stability and connectivity. A typical installation involves the use of the AWX Operator for Kubernetes, which simplifies the lifecycle management of the AWX cluster.

In a professional deployment, the configuration is managed through specific identifiers and Fully Qualified Domain Names (FQDNs). For example, the installation requires the definition of the AWX FQDN (e.g., awx.company) and, if integrating with external identity providers like authentik, the FQDN for that service (e.g., authentik.company).

The integration with external systems, such as Jenkins, is facilitated by the availability of command-line tools and the REST API. Furthermore, for organizations utilizing autoscaling topologies, AWX provides provisioning callbacks. These callbacks allow the platform to automatically recognize and integrate new nodes as they are spun up by a cloud provider, ensuring that the automation hub is always aware of the current scale of the infrastructure.

Conclusion: The Strategic Path Forward for Automation

The evolution of AWX from a monolithic wrapper for Ansible into a pluggable, service-oriented platform reflects the broader shift in the IT industry toward cloud-native operations. By breaking away from the architectural decisions of a decade ago, the project is now positioned to handle the scale of tens of millions of managed endpoints.

The shift to the AWX Collection and the deprecation of tower-cli represent a move toward professionalization and standardization. By ensuring that modules are idempotent, consistent in behavior, and synchronized with the API, Red Hat has created a toolset that reduces the risk associated with large-scale automation.

For the end-user, the impact is a system that is more reliable and easier to integrate. The ability to manage credentials securely, sync inventories dynamically, and orchestrate jobs via a standardized API makes AWX the indispensable center of the automation strategy. As the platform continues to evolve, the focus on modularity will allow it to adapt to new technologies—whether they be AI-driven operations or new forms of edge computing—without requiring a complete rewrite of the core engine. The transition from AWX to RHAAP remains a critical path for organizations that require the stability of a commercial product while benefiting from the innovation of the open-source community.

Sources

  1. OneUptime - Setup Ansible AWX RHEL 9
  2. authentik - AWX/Tower Integration
  3. Red Hat - Ansible AWX Overview
  4. Red Hat - Introducing the AWX Collection
  5. Red Hat - Upcoming Changes to the AWX Project
  6. Mainline - Changes to Ansible AWX

Related Posts