- How to prepare and validate the RHEL host
- What the all-in-one installer changes
- How to log in, verify rootless AAP services, and protect generated secrets
Red Hat Ansible Automation Platform 2.7 can run as a containerized, single-server deployment for learning, demonstrations, and home-lab automation. The Tech Little Brawta Ansible folder includes a guided installer that builds this growth topology on a fresh Red Hat Enterprise Linux server.
The finished host includes Automation Gateway and the web interface, Automation Controller, Private Automation Hub, Event-Driven Ansible, Automation Metrics, PostgreSQL, Redis, and Receptor. The script handles the repetitive setup, but you still need an eligible Red Hat account, the official AAP 2.7 containerized setup bundle, and a server that meets the requirements.
Know the boundary before you begin
This is an all-in-one lab deployment, not a highly available production design. Use a fresh server that does not already run AAP. The installer does not provide a Red Hat subscription manifest or an organisation-specific TLS certificate, and the downloaded Red Hat bundle must remain private.
The guide and script were reviewed against the repository source at commit 413e16dcef02c5980a989e809b09d52877c4acbd. Static review confirms what the automation is designed to do; it is not evidence that the installer has succeeded on every RHEL build, architecture, network, or entitlement combination. Test it in a disposable lab before depending on it.
Server requirements
| Requirement | Minimum |
|---|---|
| Operating system | RHEL 9.6 or a newer RHEL 9 release, or RHEL 10 |
| Processor | 4 virtual CPUs |
| Memory | 16 GiB; 20 GiB or more is recommended |
| Storage | 80 GiB free under /home |
| Architecture | x86_64 or aarch64 |
| Repositories | Enabled RHEL BaseOS and AppStream |
| Account | An account permitted to run sudo |
Connect to the new server and inspect it before copying any installer files:
ssh YOUR_RHEL_USER@SERVER_IP
cat /etc/redhat-release
uname -m
nproc
free -h
df -h /home
sudo subscription-manager status
sudo dnf repolist --enabled
Confirm that the reported architecture matches the bundle you plan to download and that BaseOS and AppStream appear in the enabled repository list. If the server is not registered, use the registration method supplied by your Red Hat administrator. Never place Red Hat passwords or activation keys in the script or repository.
Download the official AAP 2.7 bundle
Sign in to the Red Hat Hybrid Cloud Console download page with an account entitled to AAP. Download the AAP 2.7 containerized setup bundle for the server architecture. Its name will resemble:
ansible-automation-platform-containerized-setup-bundle-2.7-2-x86_64.tar.gz
The point release may be newer than this example. Do not extract the archive yourself, and do not upload it to GitHub.
Get the Tech Little Brawta installer
On the RHEL server, install Git, clone the lab repository, and enter its Ansible folder:
sudo dnf install -y git
git clone --depth 1 https://github.com/techlittlebrawta/techlittlebrawta-lab.git
cd techlittlebrawta-lab/ansible
If Git is not available, the repository README also documents archive download and workstation copy methods. Whichever route you choose, place the untouched Red Hat bundle beside install-aap-all-in-one.sh. The directory should contain the README, the installer script, and exactly one matching AAP 2.7 bundle unless you plan to pass a bundle path explicitly.
Review the plan and run the installer
Make the script executable, then start it with sudo:
cd ~/techlittlebrawta-lab/ansible
chmod +x install-aap-all-in-one.sh
sudo ./install-aap-all-in-one.sh
The installer detects the first non-loopback IPv4 address, proposes a local AAP hostname, prints its plan, and waits for confirmation before changing the server. On a host with several interfaces, specify the address your workstation uses:
sudo ./install-aap-all-in-one.sh --ip SERVER_IP
You can also choose a lowercase fully qualified hostname:
sudo ./install-aap-all-in-one.sh \
--ip SERVER_IP \
--fqdn aap01.lab.example.com
Use --yes only after you have reviewed the plan and intentionally want a non-interactive run. Installation normally takes 30 to 60 minutes. Keep the terminal open; the full log is written to /var/log/aap-all-in-one-install.log.
What the automation changes
- Validates the host: Checks RHEL version, architecture, CPU, memory, free space under
/home, Red Hat registration, enabled repositories, bundle filename, and archive integrity. - Installs prerequisites: Adds supported host packages including Ansible Core, Podman, firewalld, OpenSSL, and the firewall Python bindings. It also checks the expected Ansible Core version for the RHEL major release.
- Configures local naming: Sets the selected hostname and adds a managed entry to
/etc/hosts, then confirms local IPv4 resolution. - Creates the service account: Creates a dedicated
aapaccount, enables lingering for its user services, and prepares rootless container operation. - Stages the bundle: Extracts the setup bundle under
/home/aap/aap-installso the installation uses the required free space under/home. - Generates secrets and inventory: Creates unique administrator and database passwords, writes a growth-topology inventory with local connections, standalone Redis, and offline bundle use, then restricts the inventory permissions.
- Opens web access: Enables firewalld and permits HTTP and HTTPS using the supported service definitions.
- Runs and checks AAP: Launches the Red Hat containerized installer as the
aapaccount, checks for failed user services, and tests the HTTPS interface by both hostname and IP address.
Log in for the first time
After a successful run, the script prints the IP URL, optional friendly-name URL, username admin, and a randomly generated password. The simplest address is:
https://SERVER_IP
The generated certificate covers the IP address and friendly hostname, but its certificate authority is private to the installation. Your browser will probably warn you on first access. Confirm that the address belongs to your lab server before accepting the warning.
To retrieve the login details later, run:
sudo cat /root/aap-login.txt
After logging in, attach an available Red Hat subscription or upload the subscription manifest used by your organisation.
Verify the rootless AAP services
AAP runs its containers under the aap service account. Consequently, sudo podman ps checks root's container storage and will usually show nothing. That does not mean AAP is stopped.
sudo -iu aap
podman ps
podman ps -a
systemctl --user --type=service --state=running
systemctl --user --failed
exit
You should see services and containers for the gateway, controller, hub, EDA, metrics, PostgreSQL, and Redis. A healthy failed-unit check reports 0 loaded units listed.
From your normal account, confirm that HTTPS is listening and that the web interface responds:
sudo ss -lntp | grep ':443'
curl -kI https://SERVER_IP
The -k option is appropriate for this initial check because the lab certificate uses the installation's private certificate authority. An HTTP response such as 200 OK confirms that the web server answered.
Troubleshooting without making the problem worse
If the installer stops, begin with its final message and log rather than repeatedly rerunning it:
sudo less /var/log/aap-all-in-one-install.log
df -h /home
sudo -iu aap systemctl --user --failed
sudo -iu aap podman ps -a
sudo ss -lntp | grep ':443'
The script deliberately refuses to continue when it detects existing AAP data. That guard protects previously generated database credentials after a partial or completed installation. Understand the failure and preserve the evidence before deciding whether to repair the host or rebuild the disposable lab server.
Protect the installation secrets
/root/aap-login.txtcontains the AAP administrator password.- The generated inventory under
/home/aap/aap-install/contains database passwords. - The official setup bundle is entitled Red Hat software and must remain private.
- Do not commit inventories, credentials, logs, certificates, private keys, or bundles to source control.
Conclusion
The all-in-one installer turns a fresh, correctly entitled RHEL server into a complete AAP 2.7 learning environment with one reviewed command path. The valuable part is not just automation: the script checks the host before it starts, generates unique credentials, keeps AAP services under their rootless account, and verifies the web endpoint before reporting success.
Review the complete repository instructions and installer source before running it. A little preparation, a little verification, and the automation is the brawta.