Installing the containerized version on a single host
To install rhaap v2.7 create a virtual machine with the folowing specs:
- rhel9 or better
- 16G memory (24G recommended)
- 50 GB storage (for testing), more is better
- create a non-privileged user with sudo rights
- create the application directory /opt/app (owned by the created user)
Read the documentation for additional requirements
Download the installation package to /opt/app.
Untar the package tar xvzf <install-package>.
edit the inventory-growth and fill in the variables for your environment, see (minimal) example below
# This is the AAP growth installer inventory file
# Please consult the docs if you're unsure what to add
# This section is for your AAP Gateway host(s)
# -----------------------------------------------------
[automationgateway]
<host fqdn>
# This section is for your AAP Controller host(s)
# -----------------------------------------------------
[automationcontroller]
<host fqdn>
# This section is for your AAP Automation Hub host(s)
# -----------------------------------------------------
[automationhub]
<host fqdn>
# This section is for your AAP EDA Controller host(s)
# -----------------------------------------------------
# [automationedacontroller]
[automationeda]
<host fqdn>
# This section is for your AAP Automation Metrics Service host(s)
# -----------------------------------------------------
[automationmetrics]
<host fqdn>
# This section is for the AAP database
# -----------------------------------------------------
[database]
<host fqdn>
[all:vars]
ansible_connection=local
bundle_install=false
# Common variables
postgresql_admin_username=postgres
postgresql_admin_password=<password>
registry_username=<redhat_account_mail_address>
registry_password=<redhat_account_password>
redis_mode=standalone
# -----------------------------------------------------
# AAP Gateway
# -----------------------------------------------------
gateway_admin_password=<password>
gateway_pg_host=<host_fqdn>
gateway_pg_password=<password>
# AAP Controller
# -----------------------------------------------------
controller_admin_password=<password>
controller_pg_host=<host_fqdn>
controller_pg_password=<password>
controller_percent_memory_capacity=0.5
# AAP Automation Hub
# -----------------------------------------------------
hub_admin_password=<password>
hub_pg_host=<host_fqdn>
hub_pg_password=<password>
hub_seed_collections=false
# AAP EDA Controller
# -----------------------------------------------------
eda_admin_password=<password>
eda_pg_host=<host_fqdn>
eda_pg_password=<password>
# AAP Automation Metrics Service
# -----------------------------------------------------
automationmetrics_pg_host=<host_fqdn>
automationmetrics_pg_password=<password>
automationmetrics_controller_read_pg_host=<host_fqdn>
automationmetrics_controller_read_pg_password=<password>
Start the installer from the unprivilleged account you created earlier:
ansible-playbook -i inventory-growth ansible.containerized_installer.install
When the installer finishes, the last part of the log should look like this:
ASK [ansible.containerized_installer.automationhub : Install the git binary] **************************************************************************************
skipping: [rhaap27.homelab]
TASK [ansible.containerized_installer.automationhub : Clone the postinstall config repository] *********************************************************************
skipping: [rhaap27.homelab]
TASK [ansible.containerized_installer.automationhub : Include vars for automation hub] *****************************************************************************
skipping: [rhaap27.homelab]
TASK [ansible.containerized_installer.automationhub : Get platform token] ******************************************************************************************
skipping: [rhaap27.homelab]
TASK [Execute automation hub resource configuration] ***************************************************************************************************************
skipping: [rhaap27.homelab]
PLAY RECAP *********************************************************************************************************************************************************
localhost : ok=38 changed=0 unreachable=0 failed=0 skipped=83 rescued=0 ignored=0
rhaap27.homelab : ok=724 changed=258 unreachable=0 failed=0 skipped=317 rescued=0 ignored=0
Now you can login to the rhaap instance using the admin account you specified in the inventory.
Delete the inventory after installation or encrypt the inventory.
Certificate errors
As the automation platform installer generates a self-signed certificate (by default), you will get a certificate message when connecting
to the automation platform gateway. This can be avoided by installing a custom certificate during setup, but this certificate must be renewed
by running the installer each time you add a new certificate.
This can become quite cumbersome when certificate lifetimes shorten. Therefore it might be better to let the self signed certificate alone
and install a small nginx webserver, that we will use as a proxy for the automation platform, this nginx proxy can manage its certificates
by using certbot, so it will be fully autoated.
The configuration for this proxy instance:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream aap {
server your-aap-gateway:443;
}
server {
server_name your-aap-gateway;
location / {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass https://aap;
proxy_redirect off;
proxy_ssl_verify off;
}
listen 80;
}
This configuration uses htttp, now when you let certbot do its magic and it installs the certificate, it will use https instead.
Provided you have a acme server for internal addresses or use an external address.
After the certbot run, it will look like this:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream aap {
server your-aap-gateway:443;
}
server {
server_name your-aap-gateway;
location / {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass https://aap;
proxy_redirect off;
proxy_ssl_verify off;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/<hostname>/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/<hostname>/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = your-aap-gateway) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name your-aap-gateway;
listen 80;
return 404; # managed by Certbot
}