Questo contenuto non è disponibile nella lingua selezionata.
Chapter 4. Preparing the containerized Ansible Automation Platform installation
Prepare your environment for containerized Ansible Automation Platform by understanding deployment topologies, verifying system requirements, configuring Red Hat Enterprise Linux hosts, and setting up inventory files.
4.1. Tested deployment models Copia collegamentoCollegamento copiato negli appunti!
Red Hat tests Ansible Automation Platform 2.5 with a defined set of topologies to give you opinionated deployment options. The supported topologies include infrastructure topology diagrams, tested system configurations, example inventory files, and network ports information.
For containerized Ansible Automation Platform, there are two infrastructure topology shapes:
- Growth - (All-in-one) Intended for organizations that are getting started with Ansible Automation Platform. This topology allows for smaller footprint deployments.
- Enterprise - Intended for organizations that require Ansible Automation Platform deployments to have redundancy or higher compute for large volumes of automation. This is a more future-proofed scaled out architecture.
For more information about the tested deployment topologies for containerized Ansible Automation Platform, see Container topologies in Tested deployment models.
4.2. System requirements Copia collegamentoCollegamento copiato negli appunti!
Use this information when planning your installation of containerized Ansible Automation Platform.
4.2.1. Prerequisites Copia collegamentoCollegamento copiato negli appunti!
Configure a dedicated non-root user on the Red Hat Enterprise Linux host.
-
This user requires
sudoor other Ansible supported privilege escalation (sudois recommended) to perform administrative tasks during the installation. - This user is responsible for the installation of containerized Ansible Automation Platform.
- This user is also the service account for the containers running Ansible Automation Platform.
-
This user requires
- For managed nodes, configure a dedicated user on each node. Ansible Automation Platform connects as this user to run tasks on the node. For more information about configuring a dedicated user on each node, see Preparing the managed nodes for containerized installation.
- For remote host installations, configure SSH public key authentication for the non-root user. For guidelines on setting up SSH public key authentication for the non-root user, see How to configure SSH public key authentication for passwordless login.
- Ensure the Red Hat Enterprise Linux host has internet access if you are using the default online installation method.
- Open the appropriate network ports if you have a firewall in place. For more information about the ports to open, see Container topologies in Tested deployment models.
Containerized Ansible Automation Platform stores all runtime data, configuration files, container images, and Podman volumes under the installing user’s home directory. This includes $HOME/aap/ for component configuration and data, and $HOME/.local/share/containers/ for container images and volumes.
Podman does not support storing container images on an NFS share. To use an NFS share for the user home directory, set up the Podman storage backend path outside of the NFS share. For more information, see Rootless Podman and NFS.
4.2.2. Ansible Automation Platform system requirements Copia collegamentoCollegamento copiato negli appunti!
Your system must meet the following minimum system requirements to install and run Red Hat Ansible Automation Platform.
| Type | Description | Notes |
|---|---|---|
| Subscription |
| |
| Operating system |
| |
| CPU architecture | x86_64, AArch64, s390x (IBM Z), ppc64le (IBM Power) | |
|
|
|
|
| Browser | A currently supported version of Mozilla Firefox or Google Chrome. | |
| Database | PostgreSQL 15 | External (customer supported) databases require International Components for Unicode (ICU) support. |
Each virtual machine (VM) has the following system requirements:
| Requirement | Minimum requirement |
|---|---|
| RAM |
|
| CPUs | 4 |
| Local disk |
|
| Disk IOPS | 3000 |
4.2.3. Database requirements Copia collegamentoCollegamento copiato negli appunti!
Ansible Automation Platform can work with two varieties of database:
- Database installed with Ansible Automation Platform - This database consists of a PostgreSQL installation done as part of an Ansible Automation Platform installation using PostgreSQL packages that Red Hat provides.
- Customer provided or configured database - This is an external database that the customer provides, whether on bare metal, virtual machine, container, or cloud hosted service.
Ansible Automation Platform requires a customer provided (external) database to have International Components for Unicode (ICU) support.
4.3. Preparing the Red Hat Enterprise Linux host for containerized installation Copia collegamentoCollegamento copiato negli appunti!
Containerized Ansible Automation Platform runs the component services as Podman based containers on top of a Red Hat Enterprise Linux host. Prepare the Red Hat Enterprise Linux host to ensure a successful installation.
Procedure
- Log in to the Red Hat Enterprise Linux host as your non-root user.
Ensure that the hostname of your host uses a fully qualified domain name (FQDN).
To check the hostname of your host, run the following command:
hostname -fExample output:
aap.example.orgIf the hostname is not a FQDN, you can set it with the following command:
$ sudo hostnamectl set-hostname <your_hostname>
Register your Red Hat Enterprise Linux host with
subscription-manager:$ sudo subscription-manager registerVerify that only the BaseOS and AppStream repositories are enabled on the host:
$ sudo dnf repolistExample output for RHEL 9:
Updating Subscription Management repositories. repo id repo name rhel-9-for-x86_64-appstream-rpms Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) rhel-9-for-x86_64-baseos-rpms Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)Example output for RHEL 10:
Updating Subscription Management repositories. repo id repo name rhel-10-for-x86_64-appstream-rpms Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) rhel-10-for-x86_64-baseos-rpms Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs)- For disconnected installations, follow the steps in Obtaining and configuring RPM source dependencies to access these repositories.
- Ensure the host can resolve host names and IP addresses using DNS. This is essential to ensure services can talk to one another.
Install
ansible-core:$ sudo dnf install -y ansible-coreOptional: Install additional utilities that are useful for troubleshooting purposes, for example
wget,git-core,rsync, andvim:$ sudo dnf install -y wget git-core rsync vim- Optional: To have the installation program automatically pick up and apply your Ansible Automation Platform subscription manifest license, follow the steps in Obtaining a manifest file.
4.4. Preparing the managed nodes for containerized installation Copia collegamentoCollegamento copiato negli appunti!
Managed nodes, also referred to as hosts, are the devices that Ansible Automation Platform manages. To ensure a consistent and secure setup of containerized Ansible Automation Platform, create a dedicated user on each managed node. Ansible Automation Platform connects as this user to run tasks on the node.
Procedure
- Log in to the host as the root user.
Create a new user. Replace
<username>with the username you want, for exampleaap.$ sudo adduser <username>Set a password for the new user. Replace
<username>with the username you created.$ sudo passwd <username>Configure the user to run
sudocommands.For a secure and maintainable installation, configure
sudoprivileges for the installation user in a dedicated file within the/etc/sudoers.d/directory.Create a dedicated
sudoersfile for the user:$ sudo visudo -f /etc/sudoers.d/<username>Add the following line to the file, replacing
<username>with the username you created:<username> ALL=(ALL) NOPASSWD: ALL- Save and exit the file.
4.5. Downloading Ansible Automation Platform Copia collegamentoCollegamento copiato negli appunti!
Choose the installation program you need based on your Red Hat Enterprise Linux environment internet connectivity and download the installation program to your Red Hat Enterprise Linux host.
Prerequisites
- You have logged in to the Red Hat Enterprise Linux host as your non-root user.
Procedure
Download the latest version of containerized Ansible Automation Platform from the Ansible Automation Platform download page.
- For online installations: Ansible Automation Platform 2.5 Containerized Setup
- For offline or bundled installations: Ansible Automation Platform 2.5 Containerized Setup Bundle
Copy the installation program
.tar.gzfile and the optional manifest.zipfile onto your Red Hat Enterprise Linux host.Use the
scpcommand to securely copy the files. The basic syntax forscpis:scp [options] <path_to_source_file> <path_to_destination>For example, use the following
scpcommand to copy the installation program.tar.gzfile to an AWS EC2 instance with a private key (replace the placeholder<>values with your actual information):scp -i <path_to_private_key> ansible-automation-platform-containerized-setup-<version_number>.tar.gz ec2-user@<remote_host_ip_or_hostname>:<path_to_destination>Decide where you want the installation program to reside on the file system. This is your installation directory.
- The installation creates installation-related files under this location and requires at least 15 GB for the initial installation.
Unpack the installation program
.tar.gzfile into your installation directory, and go to the unpacked directory.To unpack the online installer:
$ tar xfvz ansible-automation-platform-containerized-setup-<version_number>.tar.gzTo unpack the offline or bundled installer:
$ tar xfvz ansible-automation-platform-containerized-setup-bundle-<version_number>-<arch_name>.tar.gz
4.6. Configuring the inventory file Copia collegamentoCollegamento copiato negli appunti!
You can control the installation of Ansible Automation Platform with inventory files. Inventory files define the host details, certificate details, and component-specific settings needed to customize the installation.
Example inventory files are available in this document that you can copy and change to get started.
The inventory file requirements differ based on your installation type:
-
Online installation: Requires the
registry_usernameandregistry_passwordvariables to authenticate and pull container images from Red Hat registries during installation. -
Disconnected (bundled) installation: Does not require
registry_usernameorregistry_passwordbecause all container images are pre-packaged in the bundle. Instead, requires thebundle_install=trueandbundle_dirvariables.
The following inventory file examples are for online installations. For disconnected installation inventory requirements, see Performing a disconnected installation.
Additionally, growth topology and enterprise topology inventory files are available in the following locations:
In the downloaded installation program package:
-
The default inventory file, named
inventory, is for the enterprise topology pattern. -
To deploy the growth topology (all-in-one) pattern, use the
inventory-growthfile instead.
-
The default inventory file, named
- In Container topologies in Tested deployment models.
To use the example inventory files, replace the < > placeholders with your specific variables, and update the host names.
Refer to the README.md file in the installation directory or Inventory file variables for more information about optional and required variables.
4.6.1. Inventory file for online installation for containerized growth topology (all-in-one) Copia collegamentoCollegamento copiato negli appunti!
Use the example inventory file to perform an online installation for the containerized growth topology (all-in-one):
# 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.
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/tested_deployment_models/container-topologies
#
# 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:
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation
# 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
[all:vars]
# Ansible
ansible_connection=local
# Common variables
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#general-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
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#platform-gateway-variables
# -----------------------------------------------------
gateway_admin_password=<set your own>
gateway_pg_host=aap.example.org
gateway_pg_password=<set your own>
# Automation controller
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#controller-variables
# -----------------------------------------------------
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
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#hub-variables
# -----------------------------------------------------
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
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#event-driven-ansible-variables
# -----------------------------------------------------
eda_admin_password=<set your own>
eda_pg_host=aap.example.org
eda_pg_password=<set your own>
ansible_connection=local- Used for all-in-one installations where the installation program is run on the same node that hosts Ansible Automation Platform.-
If the installation program is run from a separate node, do not include
ansible_connection=local. In this case, use an SSH connection instead.
-
If the installation program is run from a separate node, do not include
-
[database]- This group in the inventory file defines the Ansible Automation Platform managed database.
4.6.2. Inventory file for online installation for containerized enterprise topology Copia collegamentoCollegamento copiato negli appunti!
Use the example inventory file to perform an online installation for the containerized enterprise topology:
# This is the Ansible Automation Platform enterprise installer inventory file
# Consult the docs if you are unsure what to add
# For all optional variables consult the included README.md
# or the Red Hat documentation:
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation
# This section is for your platform gateway hosts
# -----------------------------------------------------
[automationgateway]
gateway1.example.org
gateway2.example.org
# This section is for your automation controller hosts
# -----------------------------------------------------
[automationcontroller]
controller1.example.org
controller2.example.org
# This section is for your Ansible Automation Platform execution hosts
# -----------------------------------------------------
[execution_nodes]
hop1.example.org receptor_type='hop'
exec1.example.org
exec2.example.org
# This section is for your automation hub hosts
# -----------------------------------------------------
[automationhub]
hub1.example.org
hub2.example.org
# This section is for your Event-Driven Ansible controller hosts
# -----------------------------------------------------
[automationeda]
eda1.example.org
eda2.example.org
[redis]
gateway1.example.org
gateway2.example.org
hub1.example.org
hub2.example.org
eda1.example.org
eda2.example.org
[all:vars]
# Common variables
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#general-variables
# -----------------------------------------------------
postgresql_admin_username=<set your own>
postgresql_admin_password=<set your own>
registry_username=<your RHN username>
registry_password=<your RHN password>
# Platform gateway
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#platform-gateway-variables
# -----------------------------------------------------
gateway_admin_password=<set your own>
gateway_pg_host=externaldb.example.org
gateway_pg_database=<set your own>
gateway_pg_username=<set your own>
gateway_pg_password=<set your own>
# Automation controller
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#controller-variables
# -----------------------------------------------------
controller_admin_password=<set your own>
controller_pg_host=externaldb.example.org
controller_pg_database=<set your own>
controller_pg_username=<set your own>
controller_pg_password=<set your own>
# Automation hub
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#hub-variables
# -----------------------------------------------------
hub_admin_password=<set your own>
hub_pg_host=externaldb.example.org
hub_pg_database=<set your own>
hub_pg_username=<set your own>
hub_pg_password=<set your own>
# Event-Driven Ansible controller
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#event-driven-ansible-variables
# -----------------------------------------------------
eda_admin_password=<set your own>
eda_pg_host=externaldb.example.org
eda_pg_database=<set your own>
eda_pg_username=<set your own>
eda_pg_password=<set your own>
4.7. Setting registry_username and registry_password Copia collegamentoCollegamento copiato negli appunti!
When using the registry_username and registry_password variables for an online non-bundled installation, you need to create a new registry service account.
Registry service accounts are named tokens that you can use in environments where you share credentials, such as deployment systems.
Procedure
- Go to https://access.redhat.com/terms-based-registry/accounts.
- On the Registry Service Accounts page click .
- Enter a name for the account using only the allowed characters.
- Optionally enter a description for the account.
- Click .
- Find the created account in the list by searching for your name in the search field.
- Click the name of the account that you created.
Alternatively, if you know the name of your token, you can go directly to the page by entering the URL:
https://access.redhat.com/terms-based-registry/token/<name-of-your-token>A token page opens, displaying a generated username (different from the account name) and a token.
- If no token is displayed, click . You can also click this to generate a new username and token.
-
Copy the username (for example "1234567|testuser") and use it to set the variable
registry_username. -
Copy the token and use it to set the variable
registry_password.