
AWX is open source and free, while Ansible Tower requires a commercial license with per-node pricing, offering enterprise features like clustering, LDAP/SAML integration, audit logging, and official support.
learn to install Ansible AWX on Ubuntu using Docker, Minikube, and kubectl, deploy Ansible X with the X operator, and access the Ansible X dashboard.
Set up an Ansible AWS server and two VMs in VirtualBox, with Ubuntu 24.04 server and Ubuntu/CentOS clients, enable SSH, and create a sudo user on all.
Install Oracle VirtualBox, create a Ubuntu 64-bit VM template for Ansible AWX, configure 4 GB RAM, 2 CPUs, 25 GB disk, bridged networking, and attach Ubuntu ISO for unattended setup.
Guides you through starting the oracle vm and selecting install ubuntu, then performing language, keyboard, internet settings, interactive installation, disk erase, user account creation, and the reboot sequence.
Update and configure the VM by confirming Ubuntu 24.0, 4.1 LTS is installed, enabling ssh, installing OpenSSH server, starting the service, and preparing remote access via MobaXterm or PuTTY.
Learn to access a virtual machine via Mobaxterm using ssh, connect as a user with sudo privileges, and plan creating two more VMs (Ubuntu and CentOS) for the org server.
Install docker on Ubuntu by adding the official apt repository and gpg key, then install docker, add your user to the docker group, and verify with hello world.
Install and configure a local single-node Kubernetes cluster using Minikube on Ubuntu by updating the system, installing dependencies, downloading the binary with curl, and installing kubectl.
Install kubectl by downloading the tool, setting executable permissions, and moving the binary to /usr/local/bin; verify the version with kubectl version -o yaml, then start minikube cluster.
Initialize a minikube cluster with the docker driver, verify the four GB memory and two CPUs requirements, and confirm a single-node Kubernetes control plane with kubectl.
Install Ansible AWX using the AWS operator on a minikube single-node cluster, enabling docker driver and ingress to route external traffic and deploy the AWX operator.
Deploy the Ansible AWX operator by checking the latest operator version, cloning the repository, checking out the desired version, setting a namespace, deploying, and verifying pod status.
Create and edit the awx-ubuntu.yml to deploy an aws resource on an ubuntu kubernetes cluster using a nodeport service. Monitor pods, services, and logs in the ansible-dash-aws namespace.
Verify the pods are running and access the aws dashboard from the ubuntu system using the ip and port 31490, then switch to outside access with the adjusted command.
Access the AWX dashboard from outside the Ubuntu system by retrieving the admin password via a command, log in, and change the password to a new one.
Navigate the Ansible AWX dashboard to run your Ansible playbook and view a homepage overview of jobs, tasks, projects, inventories, and hosts, plus key tabs like schedules and activity stream.
Explore the awx dashboard's resources overview, covering templates, credentials, projects, inventories, and hosts, and see how each defines jobs, stores access, links code, and tracks server status.
Explore the access section of the Ansible AWX dashboard, including organizations, users, teams, instance groups, instances, and administration, plus settings for notifications, logging, and authentication.
Configure ssh and set up a sudo-enabled S Verma user on Ubuntu and CentOS clients for AWX client integration with an Ansible AWS server, enabling key-based authentication.
Set up passwordless authentication from an AWS server to two client machines for AWX client integration by generating RSA keys and copying the public key to each client's authorized_keys file.
Navigate the live lab to create an organization and project in the AWS web interface, configure credentials, and set up an inventory to run a job template.
Create an AWX organization in the AWS interface, name it, describe it, and select an execution environment for Ansible tasks; then create a project and assign it to the organization.
Create a project, assign it to tech start organization, set the execution environment, and choose a manual source control type; ensure an automation directory with playbooks to avoid the warning.
Troubleshoot a project creation warning in AWX by accessing the pod with kubectl in the ansible-awx namespace within the AWS environment, validating the automation directory, and confirming playbook placement.
Create and configure credentials with a private key for SSH access to AWS servers and client machines, enabling inventory creation and playbook execution.
Create an inventory named tech start inventory, add two hosts with IPs 192.168.1.11 (client one Ubuntu) and 192.168.1.18 (client two CentOS), and test connectivity using the ping module.
Run the ping module in AWX or Ansible Tower to verify connectivity from your AWS server to hosts in the inventory, using a saved credential and checking job status.
Explore how AWX templates define every parameter to run a playbook, including inventories, project, credentials, and variables, and learn how to set run vs check, verbosity, and privilege escalation.
Create and place the ansible playbook in the automation directory on both task and web pods, then copy it into the pods to enable remote server execution.
Create a job template by adding a name and description, selecting run as the job type, choosing an inventory and project, and saving to create the template.
Launch the template to execute a simple playbook on two inventory servers that prints hello Ansible world. Templates enable reusability, consistency, and flexibility with surveys and extra variables.
Explore a cross-platform nginx playbook for Ubuntu and CentOS. Use gathered facts to pick apt on Debian-based systems or Red Hat package manager on CentOS, then start and enable nginx.
Create a new AWX project, add an nginx automation directory inside the pod, copy the playbook there, and configure the project to point to the playbook directory in AWX.
Copy the playbook to the automation directory inside the pod using kubectl copy. Specify the namespace and nginx project path, then create a template and select the project.
Create a new job template named nginx installation temp, select the nginx project and a two-host inventory (Ubuntu and CentOS), enable privilege escalation, and run the template to install nginx.
Run a job template in AWX to execute the nginx installation playbook on Debian-based and RedHat-based clients, monitor facts gathering, and verify nginx is running on Ubuntu and CentOS.
Create an Ansible Tower project using Git as source control by connecting a GitHub repository with playbooks and inventory, and confirm the job fetch completes successfully.
Create a new inventory in AWX or Ansible Tower by linking a git-based project, configuring update revision on launch, and syncing hosts from the inventory file (inventory dot yml).
Verify that hosts from the git inventory are imported by inspecting the inventory file and noting host names and IPs. Then create a template by selecting the project and inventory.
Create a new job template by configuring name, job type, inventory, and linked project from a GitHub repository, then save and launch using the repository playbooks.
Launch the template to start a job that runs the defined playbook. It uses the inventory with Ubuntu and CentOS hosts and ends with a successful status.
Run a different playbook from the GitHub repository using the same job template by editing the template to select the desired playbook, saving, and launching the job to execute it.
Sync your GitHub project in AWX or Ansible Tower to reflect newly added playbooks, then select the updated playbook in the template, save, and launch it.
Set up a schedule to auto-sync new GitHub playbooks into your Ansible project automatically. Configure the timing and frequency, name the schedule, and apply exceptions.
Execute a cross-platform nginx installation and service management playbook via awx, enabling privilege escalation, logging into both clients, and ensuring nginx is installed and running on each.
Explore RBAC in AWX and Ansible Tower by mapping roles to users, enabling view, modify, or delete permissions for job templates, inventories, and playbooks in the Ansible web interface.
Explore the three AWX user types—system administrator, system auditor, and normal user—and their access levels, from full control to read-only or restricted permissions.
Organizations in AWX group teams, projects, and inventories; every user belongs to one. Users inherit organization roles—admin, auditor, member, or read—and can gain roles to view or modify AWS objects.
Create a normal user in the aws web interface. Assign them to Tech Start; the normal user has no default access to resources, unlike an auditor with read-only permissions.
Create a system auditor user in managing AWX and Ansible Tower to enable read-only access. View jobs and templates without edit permissions, illustrating the auditor role.
Create a system administrator user with full privileges to the AWS interface, manage organizations and roles, and work with templates and jobs in AWX or Ansible Tower.
Assign executable permission to one job template and read access to another for Amit by adding roles in the AWX/Ansible Tower user settings, then verify by logging in as Amit.
Demonstrates granting a read-only user admin permissions on a specific inventory in AWX and Ansible Tower, enabling edits and host management for that inventory.
Create a team in Ansible UX, name it developers, add two users, and learn how team-based RBAC inherits permissions for inventories, templates, and dashboards.
learn how to manage teams in AWX and Ansible Tower by adding users to a team, assigning admin permissions, and granting roles like job templates to control access.
Configure team memberships to grant role-based permissions in AWX and Ansible Tower. See how adding users to the developer team elevates template access and dashboard permissions.
Assign roles to teams by granting read access to selected inventories for test one and test two in AWX and Ansible Tower, demonstrating access control based on team membership.
This entire course module is based on AWX, the open-source version of Ansible Tower.
A good way to start learning is by using AWX, as it serves as the foundation for Ansible Tower.
Ansible AWX is the open-source version of Ansible Tower, which is a web-based interface for managing Ansible automation.
Ansible AWX is supported by the community, which means there is no official help if you run into problems.
Ansible AWX has all the basic features to manage automation tasks but doesn’t have some advanced features like security tools or reporting.
Ansible Tower is the commercial (paid) version of AWX, with extra features that businesses need.
Ansible Tower comes with customer support from the company behind Ansible (Red Hat), which can help if you run into issues.
Ansible Tower has more advanced features like security tools, better reporting, and the ability to handle larger and more complex environments.
Ansible Tower requires a valid subscription to run on CentOS 8 or 9. Ansible Tower is not free. It is a commercial product that requires a license to use.
Introduction
An Overview of Ansible AWX/Tower.
Features of Ansible AWX.
Features of Ansible Tower.
Similarities Between Ansible AWX and Ansible Tower.
Key Differences Between Ansible AWX and Ansible Tower.
When to Use Ansible AWX vs. Ansible Tower.
VM Setup for Ansible AWX Installation
Ansible AWX Installation: A Comprehensive Overview
Ansible AWX Setup
Ansible AWX VM Setup with Oracle VM
Ubuntu 24.04 Installation on Oracle VM
Update and Configure the VM
Access VMs Using MobaXterm
Installation of Ansible AWX
Set Up Docker on Ubuntu
Install and Configure Minikube Cluster on Ubuntu
Install Kubectl Command-Line Tool
Initialize the Minikube Cluster
Configure the Minikube Cluster
Deploy Ansible AWX via Operator
Create a awx-ubuntu.yml file
Access the Dashboard from the Ubuntu System
Access the Dashboard from Outside the Ubuntu System
Ansible AWX Dashboard: Introduction and Overview
Navigating the Ansible AWX Dashboard
Ansible AWX Dashboard: Key Features and Functionality
Ansible AWX Dashboard: Access Section
Client Setup for Ansible AWX: A Step-by-Step Guide
SSH and User Setup for AWX Client Integration
Passwordless Authentication for AWX-Client Integration
Ansible AWX: Organization, Project Setup, and Troubleshooting Lab
Lab Session Overview: Key Concepts and Practical Exercises
Create Organization in AWX
Create a Project
Troubleshooting Project Creation Warning
Set Up Credentials
Create an Inventory
Run Command - Test Ping Connectivity
Run Command - Check OS Version
Ansible AWX Templates
Introduction to AWX Templates: Key Concepts and Usage
Create and Place Ansible Playbook in Directory
Create Job Template: MyFirstJobTemplate
Launch the Template
Cross-Platform Nginx Package Installation with Ansible AWX
Overview of Playbook for Nginx Installation
Create a new Playbook Directory
Copy Ansible Playbook to Playbook Directory
Create New Job Template
Run Job Template and Verify Nginx on Clients
Ansible AWX Integration with Git
AWX and Git Integration: A Complete Overview
Create a Project Using Git as Source Control
Create a new Inventory
Add Hosts to Inventory Using a Git Repository
Create New Job Template
Launch the Template
Run Another Playbook with the Same Job Template
Sync a Git Repository from Your Project
Add and Configure Schedules in Your Project
Execute a Playbook via AWX
Role-Based Access Control (RBAC)
How RBAC Works in AWX: An Overview
Different User Types in AWX
Organizations in AWX: Key Functions and Roles
Create a Normal User
Create a System Auditor User
Create a System Administrator User
Add Permissions to access Job Template
Add Permissions to access Inventory
Create New Team
Manage Teams: Adding Users to a Team in AWX
Configuring Team Memberships
Assign Roles to Teams
Ansible AWX Setup in the AWS Cloud