Chapter 1. Planning your Red Hat Ansible Automation Platform installation
You can use this section to help plan your Red Hat Ansible Automation Platform installation. Before installation, review information on the setup installer, system requirements, and supported installation scenarios.
1.1. Red Hat Ansible Automation Platform system requirements
Use this information when planning your Red Hat Ansible Automation Platform installations. Each installed Ansible Automation Platform component - automation hub and automation controller has the following requirements.
Your system must meet the following minimum system requirements to install and run Red Hat Ansible Automation Platform.
Table 1.1. Red Hat Ansible Automation Platform system requirements
Required | Notes | |
---|---|---|
Subscription | Valid Red Hat Ansible Automation Platform | |
OS | Red Hat Enterprise Linux 8.2 or later 64-bit (x86) | |
Ansible | version 2.9 required | |
RAM | 4Gb minimum |
|
CPUs | 2 minimum |
|
Disk: service node | 40Gb dedicated hard disk space |
|
Disk: database node | 20Gb dedicated hard disk space |
|
Browser | A currently supported version of Mozilla FireFox or Google Chrome | |
Database | PostgreSQL version 12 |
- All automation controller data is stored in the database. Database storage increases with the number of hosts managed, number of jobs run, number of facts stored in the fact cache, and number of tasks in any individual job. For example, a playbook run every hour (24 times a day) across 250, hosts, with 20 tasks will store over 800000 events in the database every week.
- If not enough space is reserved in the database, old job runs and facts will need cleaned on a regular basis. Refer to Management Jobs in the Automation Controller Administration Guide for more information
Amazon EC2
- Instance size of m4.large or larger
- An instance size of m4.xlarge or larger if there are more than 100 hosts
Additional notes for Red Hat Ansible Automation Platform requirements
-
Actual RAM requirements vary based on how many hosts automation controller will manage simultaneously (which is controlled by the
forks
parameter in the job template or the systemansible.cfg
file). To avoid possible resource conflicts, Ansible recommends 1 GB of memory per 10 forks + 2GB reservation for automation controller, see the :ref:`capacity algorithm <userguide:ug_job_concurrency>` for further details. Ifforks
is set to 400, 42 GB of memory is recommended. - A larger number of hosts can of course be addressed, though if the fork number is less than the total host count, more passes across the hosts are required. These RAM limitations are avoided when using rolling updates or when using the provisioning callback system built into automation controller, where each system requesting configuration enters a queue and is processed as quickly as possible; or in cases where automation controller is producing or deploying images such as AMIs. All of these are great approaches to managing larger environments. For further questions, please contact Ansible support via the Red Hat Customer portal at https://access.redhat.com/.
- The requirements for systems managed by Ansible Automation Platform are the same as for Ansible. See Getting Started in the Ansible User Guide.
Notable PostgreSQL changes
Red Hat Ansible Automation Platform uses PostgreSQL 12.
- PostgreSQL user passwords will now be hashed with SCRAM-SHA-256 secure hashing algorithm before storing in the database.
-
You will no longer need to provide a
pg_hashed_password
in your inventory file at the time of installation because PostgreSQL 12 can now store the user’s password more securely. If users supply a password in the inventory file for the installer (pg_password
), that password will be SCRAM-SHA-256 hashed by PostgreSQL as part of the installation process. DO NOT use special characters inpg_password
as it may cause the setup to fail. -
Since automation controller and automation hub are using a Software Collections version of PostgreSQL in 3.8, the
rh-postgresql10
scl must be enabled in order to access the database. Administrators can use theawx-manage dbshell
command, which will automatically enable the PostgreSQL SCL. -
If you just need to determine if your automation controller instance has access to the database, you can do so with the command,
awx-manage check_db
.
PostgreSQL Configurations
Optionally, you can configure the PostgreSQL database as separate nodes that are not managed by the Red Hat Ansible Automation Platform installer. When the Ansible Automation Platform installer manages the database server, it configures the server with defaults that are generally recommended for most workloads. However, you can adjust these PostgreSQL settings for standalone database server node where ansible_memtotal_mb
is the total memory size of the database server:
max_connections == 1024 shared_buffers == ansible_memtotal_mb*0.3 work_mem == ansible_memtotal_mb*0.03 maintenance_work_mem == ansible_memtotal_mb*0.04
Refer to the PostgreSQL documentation for more detail on tuning your PostgreSQL server.
Ansible software requirements
While Red Hat Ansible Automation Platform depends on Ansible Playbooks and requires the installation of the latest stable version of Ansible before installing automation controller, manual installations of Ansible are no longer required.
Upon new installations, automation controller installs the latest release package of Ansible 2.9.
If performing a bundled Ansible Automation Platform installation, the installation program attempts to install Ansible (and its dependencies) from the bundle for you.
If you choose to install Ansible on your own, the Ansible Automation Platform installation program will detect that Ansible has been installed and will not attempt to reinstall it. Note that you must install Ansible using a package manager like yum
and that the latest stable version must be installed for Red Hat Ansible Automation Platform to work properly. Ansible version 2.9 is required for |at| versions 3.8 and later.
1.2. Choosing and obtaining a Red Hat Ansible Automation Platform installer
Choose the Red Hat Ansible Automation Platform installer you need based on your Red Hat Enterprise Linux environment internet connectivity. Review the scenarios below and determine which Red Hat Ansible Automation Platform installer meets your needs.
A valid Red Hat customer account is required to access Red Hat Ansible Automation Platform installer downloads on the Red Hat Customer Portal.
Installing with internet access
Choose the Red Hat Ansible Automation Platform installer if your Red Hat Enterprise Linux environment is connected to the internet. Installing with internet access will retrieve the latest required repositories, packages, and dependencies.
- Navigate to https://access.redhat.com/downloads/content/480
- Click Download Now for the Ansible Automation Platform <latest-version> Setup.
Extract the files:
$ tar xvzf ansible-automation-platform-setup-<latest-version>.tar.gz
Installing without internet access
Use the Red Hat Ansible Automation Platform Bundle installer if you are unable to access the internet, or would prefer not to install separate components and dependencies from online repositories. Access to Red Hat Enterprise Linux repositories is still needed. All other dependencies are included in the tar archive.
- Navigate to https://access.redhat.com/downloads/content/480
- Click Download Now for the Ansible Automation Platform <latest-version> Setup Bundle.
Extract the files:
$ tar xvzf ansible-automation-platform-setup-bundle-<latest-version>.tar.gz
1.3. Attaching your Red Hat Ansible Automation Platform subscription
You must have valid subscriptions attached before installing Red Hat Ansible Automation Platform. Attaching an Ansible Automation Platform subscription enables automation hub repositories.
A valid subscription needs to be attached to the automation hub node only. Other nodes do not need to have a valid subscription attached, even if the [automationhub]
group is blank, given this is done at the repos_el
role level and that this role is run on both [automationcontroller] and `[automationhub]
hosts.
Procedure
Obtain the
pool_id
for your Red Hat Ansible Automation Platform subscription:# subscription-manager list --available --all | grep "Ansible Automation Platform" -B 3 -A 6
The command returns the following:
Subscription Name: Red Hat Ansible Automation, Premium (5000 Managed Nodes) Provides: Red Hat Ansible Engine Red Hat Ansible Automation Platform SKU: MCT3695 Contract: ```` Pool ID: `````````` Provides Management: No Available: 4999 Suggested: 1
Attach the subscription:
# subscription-manager attach --pool=<pool_id>
All nodes will have Red Hat Ansible Automation Platform attached and find the automation hub repositories.
Verification
- Verify the subscription was successfully attached:
# subscription-manager list --consumed
1.4. Supported installation scenarios
Red Hat supports the following installations scenarios for Red Hat Ansible Automation Platform
1.4.1. Standalone automation controller with a database on the same node, or a non-installer managed database
This scenario includes installation of automation controller, including the web frontend, REST API backend, and database on a single machine. It installs PostgreSQL, and configures the automation controller to use that as its database. This is considered the standard automation controller installation scenario.
See "Installing automation controller with a database on the same node" in Installing Red Hat Ansible Automation Platform components on a single machine to get started.
1.4.2. Standalone automation controller with an external managed database
This scenario includes installation of the automation controller server on a single machine and configures communication with a remote PostgreSQL instance as its database. This remote PostgreSQL can be a server you manage, or can be provided by a cloud service such as Amazon RDS.
See "Installing automation controller with an external managed database" in Installing Red Hat Ansible Automation Platform components on a single machine to get started.
1.4.3. Standalone automation hub with a database on the same node, or a non-installer managed database
This scenario includes installation of automation hub, including the web frontend, REST API backend, and database on a single machine. It installs PostgreSQL, and configures the automation hub to use that as its database.
See "Installing automation hub with a database on the same node" in Installing Red Hat Ansible Automation Platform components on a single machine to get started.
1.4.4. Standalone automation hub with an external managed database
This scenario includes installation of the automation hub server on a single machine, and installs a remote PostgreSQL database, managed by the Red Hat Ansible Automation Platform installer.
See "Installing automation hub with an external database" in Installing Red Hat Ansible Automation Platform components on a single machine to get started.
1.4.5. Platform installation with a database on the automation controller node, or non-installer managed database
This scenario includes installation of automation controller and automation hub with a database on the automation controller node, or a non-installer managed database.
See "Installing Red Hat Ansible Automation Platform with a database on the automation controller node or non-installer managed database" in Installing Red Hat Ansible Automation Platform to get started.
1.4.6. Platform installation with an external managed database
This scenario includes installation of automation controller and automation hub and configures communication with a remote PostgreSQL instance as its database. This remote PostgreSQL can be a server you manage, or can be provided by a cloud service such as Amazon RDS.
See "Installing Red Hat Ansible Automation Platform with an external managed database" in Installing Red Hat Ansible Automation Platform to get started.
1.4.7. Mutli-machine cluster installation with an external managed database
This scenario includes installation of multiple automation controller nodes and an automation hub instance and configures communication with a remote PostgreSQL instance as its database. This remote PostgreSQL can be a server you manage, or can be provided by a cloud service such as Amazon RDS. In this scenario, all automation controller are active and can execute jobs, and any node can receive HTTP requests.
Running in a cluster setup requires any database that automation controller uses to be external—PostgreSQL must be installed on a machine that is not one of the primary or secondary tower nodes. When in a redundant setup, the remote PostgreSQL version requirements is PostgreSQL 12.
- See Clustering for more information on configuring a clustered setup.
-
Provide a reachable IP address for the
[automationhub]
host to ensure users can sync content from Private Automation Hub from a different node.
See "Installing a multi-node Red Hat Ansible Automation Platform with an external managed database" in Multi-machine cluster intallation to get started.