Container growth topology
The container-based growth topology provides a smaller footprint deployment without redundancy for organizations getting started with Ansible Automation Platform.
Included are the tested infrastructure topology, system requirements, network port configurations, and an example inventory file for installation.
Infrastructure topology
The Red Hat tested infrastructure topology for this deployment model:
Red Hat tests a single VM with these requirements:
| Requirement | Minimum requirement |
|---|---|
| RAM |
|
| CPUs |
4 |
| Local disk |
|
| Disk IOPS |
3000 |
| Purpose | Example group names |
|---|---|
| All Ansible Automation Platform components |
|
Although the growth topology deploys all components to a single host, the PostgreSQL database runs as a separate managed service. Deploying automation controller with an embedded PostgreSQL database is not supported. The [database] group in the inventory file defines this separate database service.
Tested system configurations
Red Hat has tested these configurations to install and run Red Hat Ansible Automation Platform:
| Type | Description | Notes |
|---|---|---|
| Subscription |
|
|
| Operating system |
|
|
| CPU architecture |
x86_64, AArch64 |
|
| |
|
|
| Browser |
A currently supported version of Mozilla Firefox or Google Chrome. |
|
| Database |
|
|
| IP version |
IPv4, IPv6 (single-stack and dual-stack) |
Network ports
Red Hat Ansible Automation Platform uses several ports to communicate with its services. These ports must be open and available for Red Hat Ansible Automation Platform to work. Ensure that these ports are available and are not blocked by a firewall.
| Port number | Protocol | Service | Source | Destination | Description |
|---|---|---|---|---|---|
| 80/443 |
TCP |
HTTP/HTTPS |
Event-Driven Ansible |
Automation hub |
Pull container decision environments |
| 80/443 |
TCP |
HTTP/HTTPS |
Event-Driven Ansible |
Automation controller |
Launch automation controller jobs |
| 80/443 |
TCP |
HTTP/HTTPS |
Automation controller |
Automation hub |
Pull collections and execution environment images |
| 80/443 |
TCP |
HTTP/HTTPS |
Platform gateway |
Automation controller |
Platform gateway to automation controller communication |
| 80/443 |
TCP |
HTTP/HTTPS |
Platform gateway |
Automation hub |
Platform gateway to automation hub communication |
| 80/443 |
TCP |
HTTP/HTTPS |
Platform gateway |
Event-Driven Ansible |
Platform gateway to Event-Driven Ansible communication |
| 5432 |
TCP |
PostgreSQL |
Event-Driven Ansible |
Database |
Event-Driven Ansible database access |
| 5432 |
TCP |
PostgreSQL |
Platform gateway |
Database |
Platform gateway database access |
| 5432 |
TCP |
PostgreSQL |
Automation hub |
Database |
Automation hub database access |
| 5432 |
TCP |
PostgreSQL |
Automation controller |
Database |
Automation controller database access |
| 6379 |
TCP |
Redis |
Event-Driven Ansible |
Redis container |
Job launching and data storage for Event-Driven Ansible |
| 6379 |
TCP |
Redis |
Platform gateway |
Redis container |
Data storage and retrieval for platform gateway services |
| 8443 |
TCP |
HTTPS |
Platform gateway |
Platform gateway |
Internal gateway NGINX communication |
| 27199 |
TCP |
Receptor |
Automation controller |
Execution container |
Mesh nodes connect directly to controllers. Allows two-way communication for job distribution. |
| 8080/8443 |
TCP |
HTTP/HTTPS |
Platform gateway |
Automation controller |
Automation controller NGINX ports. You can configure these ports with the following inventory variables: |
| 8081/8444 |
TCP |
HTTP/HTTPS |
Platform gateway |
Automation hub |
Automation hub NGINX ports. You can configure these ports with the following inventory variables: |
| 8082/8445 |
TCP |
HTTP/HTTPS |
Platform gateway |
Event-Driven Ansible |
Event-Driven Ansible NGINX ports. You can configure these ports with the following inventory variables: |
| 8083/8446 |
TCP |
HTTP/HTTPS |
Platform gateway |
Platform gateway |
Platform gateway NGINX ports. You can configure these ports with the following inventory variables: |
If you change any port values by using inventory variables, refer to Inventory file variables to review all default port values and ensure there are no port conflicts.
Example inventory file
Use the example inventory file to perform an installation:
# This is the Ansible Automation Platform installer inventory file intended for the container growth deployment topology.
# This inventory file expects to be run from the host where Ansible Automation Platform will be installed.
# Consult the Ansible Automation Platform product documentation about this topology's tested hardware configuration.
#
# Consult the docs if you are unsure what to add
# For all optional variables consult the included README.md
# or the Ansible Automation Platform documentation
# This section is for your platform gateway hosts
# -----------------------------------------------------
[automationgateway]
aap.example.org
# This section is for your automation controller hosts
# -----------------------------------------------------
[automationcontroller]
aap.example.org
# This section is for your automation hub hosts
# -----------------------------------------------------
[automationhub]
aap.example.org
# This section is for your Event-Driven Ansible controller hosts
# -----------------------------------------------------
[automationeda]
aap.example.org
# This section is for the Ansible Automation Platform database
# -----------------------------------------------------
[database]
aap.example.org
# This section is for your Automation Metrics Service hosts
# -----------------------------------------------------
[automationmetrics]
aap.example.org
[all:vars]
# Ansible
ansible_connection=local
# Common variables
# -----------------------------------------------------
postgresql_admin_username=postgres
postgresql_admin_password=<set your own>
registry_username=<your RHN username>
registry_password=<your RHN password>
redis_mode=standalone
# Platform gateway
# -----------------------------------------------------
gateway_admin_password=<set your own>
gateway_pg_host=aap.example.org
gateway_pg_password=<set your own>
# Automation controller
# -----------------------------------------------------
controller_admin_password=<set your own>
controller_pg_host=aap.example.org
controller_pg_password=<set your own>
controller_percent_memory_capacity=0.5
# Automation hub
# -----------------------------------------------------
hub_admin_password=<set your own>
hub_pg_host=aap.example.org
hub_pg_password=<set your own>
hub_seed_collections=false
# Event-Driven Ansible controller
# -----------------------------------------------------
eda_admin_password=<set your own>
eda_pg_host=aap.example.org
eda_pg_password=<set your own>
# Automation Metrics Service
# -----------------------------------------------------
automationmetrics_pg_host=aap.example.org
automationmetrics_pg_database=metrics_service
automationmetrics_pg_username=metrics_service
automationmetrics_pg_password=<set your own>
# Read-only access to controller database
automationmetrics_controller_read_pg_host=aap.example.org
automationmetrics_controller_read_pg_database=awx
automationmetrics_controller_read_pg_username=ms_awx_readonly
automationmetrics_controller_read_pg_password=<set your own>SSH keys are only required when installing on remote hosts. If doing a self contained local VM based installation, you can use ansible_connection=local.