Ansible Automation Platform (AAP) on ARO
This content is authored by Red Hat experts, but has not yet been tested on every supported configuration.
Ansible Automation Platform (AAP) is a popular platform for centralizing and managing an organization’s automation content using Ansible as the engine for writing automation code. Prior to deployment, organizations are faced with the decision “where do I want to host this thing?”. In today’s landscape, there are several options between traditional Virtual Machines, running it on OpenShift, or even running it as a managed offering. This walkthrough covers a scenario when a customer wants to run AAP on top of a managed OpenShift offering like Azure Red Hat OpenShift (ARO).
NOTE: there are several design decisions that go into the deployment of AAP. This is a simple walkthrough to get you going and does not cover all possible decisions.
Prerequisites
High-Level Architecture
Below represents a high-level architecture. It is intended to show a simplified architecture with most components deployed. Please note that components can easily be spread across multiple availability zones to achieve high availability requirements, which is not represented in the overly simplified diagram below:

Prepare your Environment
This step simply sets up your environment with variables to be used during installation:
Create the Prerequisite Projects and Secrets
This project assumes that you will be installing the following components of Ansible Automation Platform:
Create the projects for each of the components and the operators:
Create the admin password secret for each of the operators. This will be used to authenticate with each of the individual components of AAP:
Install the AAP Operators
This section covers the installation of the AAP operators. The AAP operators are responsible for all deployment and management actions as it relates to AAP.
Install the AAP Operators:
Install the Automation Controller
Install the automation controller with the
AutomationControllercustom resource definition which was provided via the operator installation in the previous step:NOTE: you may need to adjust the
*_resource_requirementsfields (not pictured below) depending upon how large your deployment is and how many hosts you are managing with AAP. Seeoc explain automationcontroller.specfor full configuration details.This should take a few minutes to become ready. You can monitor the status by checking to see the pods that are deployed. The deployed pods are prepended with the
.metadata.namevalue of theAutomationControllerinstance deployed above. In this case,defaultare the deployed pods:Should you run into issues, you can check the logs of the automation controller operator pod. This operator is responsible for watching for new
AutomationControllerinstances and deploying and managing those instances:Once deployed (you should see some task pods, some web pods, and a postgres pod), you can login to the Ansible Automation Platform UI with the
AAP_ADMIN_USERNAMEuser and the password that you set with theAAP_ADMIN_PASSWORDenvironment variable. Once logged in you will need to provide access to an AAP subscription via your RH or Satellite credentials, accept a EULA, and then you are redirected to the dashboard. You can access AAP via thehttps://ansible.apps.$AAP_APPS_DOMAINurl:
Install Event Driven Ansible Controller
For those that wish to use event-driven Ansible, you can install the EDA controller.
Install the EDA controller with the
EDAcustom resource definition which was provided via the operator installation in the previous step:NOTE: you may need to adjust the
*_resource_requirementsfields (not pictured below) depending upon how large your deployment is and how many hosts you are managing with AAP. Seeoc explain eda.specfor full configuration details.This should take a few minutes to become ready. You can monitor the status by checking to see the pods that are deployed. The deployed pods are prepended with the
.metadata.namevalue of theEDAinstance deployed above. In this case,defaultare the deployed pods:Should you run into issues, you can check the logs of the automation hub operator pod. This operator is responsible for watching for new
EDAinstances and deploying and managing those instances:Once deployed (you should see activation workers, api pods, default workers and other various pods), you can login to the Ansible EDA UI with the
AAP_ADMIN_USERNAMEuser and the password that you set with theAAP_ADMIN_PASSWORDenvironment variable. You can access AAP via thehttps://ansible-eda.apps.$AAP_APPS_DOMAINurl:
NOTE: should you run into issues with an invalid username or password, you can change it to the value you set as AAP_ADMIN_PASSWORD (see https://access.redhat.com/solutions/7050687 )
Install Automation Hub
For those that wish to host their own Ansible content locally, you may also wish to install Automation Hub.
Install the automation hub with the
AutomationHubcustom resource definition which was provided via the operator installation in the previous step:NOTE: you may need to adjust the
*_resource_requirementsfields (not pictured below) depending upon how large your deployment is and how many hosts you are managing with AAP. Seeoc explain automationhub.specfor full configuration details.This should take a few minutes to become ready. You can monitor the status by checking to see the pods that are deployed. The deployed pods are prepended with the
.metadata.namevalue of theAutomationHubinstance deployed above. In this case,defaultare the deployed pods:Should you run into issues, you can check the logs of the automation hub operator pod. This operator is responsible for watching for new
AutomationHubinstances and deploying and managing those instances:Once deployed (you should see api pods, worker pods, a postgres pod, a redis pod and content pods), you can login to the Ansible Automation Hub UI with the
AAP_ADMIN_USERNAMEuser and the password that you set with theAAP_ADMIN_PASSWORDenvironment variable. You can access AAP via thehttps://default-aap-hub.apps.$AAP_APPS_DOMAINurl: