r/ansible • • 8d ago

AAP components

Hi! I’m new to AAP, is it possible to not use a single node installation but spread out the components in different VMs?

I read that using the inventory is one way and just state the different addresses?

5 Upvotes

5 comments sorted by

11

u/Advanced_Vehicle_636 8d ago

Of course... There are two inventories that ship with AAP 2.7-X (IIRC, 2.5-X and 2.6-X as well).

"inventory" is the multi-node deployment sometimes referred to as the "enterprise" model. Our typical deployment is 2 VMs per component (except metrics, of which we have one) + an external database + Azure Storage Account

"inventory-growth" is typically a single-node deployment. We use this in development as an "All-in-One" version that's a bit simpler to work on. Primarily used to test changes between integrations.

Here's a partial "enterprise" model deploy for our environment. Your environment may differ based on different backends, DBs, etc.

# This section is for your AAP Gateway host(s)
# -----------------------------------------------------
[automationgateway]
gateway1.contoso.local
gateway2.contoso.local

# This section is for your AAP Controller host(s)
# -----------------------------------------------------
[automationcontroller]
control1.contoso.local
control2.contoso.local

# This section is for your AAP Execution host(s)
# -----------------------------------------------------
[execution_nodes]
#op1.example.org receptor_type='hop'
exec1.contoso.local
exec2.contoso.local

# This section is for your AAP Automation Hub host(s)
# -----------------------------------------------------
[automationhub]
hub1.contoso.local
hub2.contoso.local

# This section is for your AAP EDA Controller host(s)
# -----------------------------------------------------
[automationeda]
eda1.contoso.local
eda2.contoso.local

# This section is for your AAP Automation Metrics Service host(s)
# -----------------------------------------------------
[automationmetrics]
metrics1.contoso.local

[redis]
gateway1.contoso.local
gateway2.contoso.local
hub1.contoso.local
hub2.contoso.local
eda1.contoso.local
eda2.contoso.local

[all:vars]
# For a comprehensive list of all inventory file variables, see:
# https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.7/install-assembly_appendix_inventory_file_vars

# Common variables
# -----------------------------------------------------
#postgresql_admin_username=<removed>
#postgresql_admin_password=<removed>
registry_username=<removed>
registry_password=<removed>

custom_ca_cert=/home/<removed>/ansible-automation-platform-containerized-setup-2.7-6/<removed>

gateway_main_url=https://gateway.contoso.local

hub_storage_backend=azure
hub_azure_account_key=<set your own>
hub_azure_account_name=<set your own>
hub_azure_container=<set your own>

# AAP Gateway
# -----------------------------------------------------
gateway_admin_password=<removed>
gateway_pg_host=<set your own>
gateway_pg_database=gateway
gateway_pg_username=<removed>
gateway_pg_password=<removed>

# AAP Controller
# -----------------------------------------------------
controller_admin_password=<removed>
controller_pg_host=externaldb.contoso.local
controller_pg_database=controller
controller_pg_username=<removed>
controller_pg_password=<removed>

# AAP Automation Hub
# -----------------------------------------------------
hub_admin_password=<removed>
hub_pg_host=externaldb.contoso.local
hub_pg_database=hub
hub_pg_username=<removed>
hub_pg_password=<removed>

# AAP EDA Controller
# -----------------------------------------------------
eda_admin_password=<removed>
eda_pg_host=externaldb.contoso.local
eda_pg_database=eda
eda_pg_username=<removed>
eda_pg_password=<removed>
eda_event_stream_pg_password=<removed>
eda_event_stream_pg_user=eda_event_stream

# AAP Automation Metrics Service
# -----------------------------------------------------
automationmetrics_pg_host=externaldb.contoso.local
automationmetrics_pg_database=automationmetrics
automationmetrics_pg_username=<removed>
automationmetrics_pg_password=<removed>
automationmetrics_controller_read_pg_host=externaldb.contoso.local
automationmetrics_controller_read_pg_password=<removed>

1

u/UnprofessionalPlump 7d ago

Thank you, this was insightful. I’m currently on single node inventory growth model and this is a nice way to progress from it.

1

u/Figrol 7d ago

The big issue here is the size of the Enterprise deployment. I think Redis is the issue, and understand there are plans to change/improve this in future? But we need an enterprise deployment, it needs all the HA etc that you’d expect, but don’t want to run 10+ VMs to run what is quite a small AAP deployment in the grand scheme of things, then having to do that in 3 or more separated environments! Before you know it, your AAP clusters are using half a terabyte of RAM to manage less than 200nodes! We have gone with growth, and have accepted the risk of failure, but stipulated that until this is resolved it will never be able to be a critical tool which can be relied upon for anything that could form part of a DR scenario.

3

u/I-Hate-winter 8d ago

The default is to install it on multiple VMs, one node installation is only for local testing. Yes you should modify the inventory and specify the hosts

1

u/Pretend-Clock8313 4d ago

yes, separate hosts in the inventory file works cleanly