Install Ansible Automation Controller on a Single Host with Internal DB
By Luca Berton · Published 2024-01-01 · Category: installation
Learn how to install Red Hat Ansible Automation Platform on a single host with an internal database.

Standalone automation controller with internal database (single host)
The following inventory file is used to install the Red Hat Ansible Automation Platform with one Ansible Automation Controller. This installation inventory file installs one single automation controller node with an internal database “host1.example.com”.
[automationcontroller]
host1.example.com node_type=hybrid
[all:vars]
admin_password='<password>'
pg_host=''
pg_port='5432'
pg_database='awx'
pg_username='awx'
pg_password='<password>'
pg_sslmode='prefer'
registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'With the following parameters:
[automationcontroller]The hostname and the node type. In this casehost1.example.comandhybridtype. Thehybridtype act as a controller and execution nodeadmin_password: the password of the “admin” user in the Web user interfacepg_password: the password of the PostgreSQL databaseregistry_username: the Red Hat Consumer usernameregistry_password: the Red Hat Consumer password
See also: Master Ansible Automation Platform: Simplify IT Management
Conclusion
Standalone Automation Controllers with internal databases are useful in developer scenarios or a small automation workflow.
Related Articles
- Ansible inventory file structure
- the Ansible AWX overview
- Master Ansible Automation Platform: Simplify IT Management
See also
Prerequisites
Before installing Ansible Automation Platform, ensure:
- Operating System: Red Hat Enterprise Linux 8.6+ or 9.x (x86_64)
- Minimum Hardware: 4 CPUs, 16 GB RAM, 40 GB disk
- Network: Access to
registry.redhat.ioand Red Hat CDN - Subscription: Active Red Hat Ansible Automation Platform subscription
- DNS: Hostname resolves correctly (
host1.example.com)
# Verify RHEL version
cat /etc/redhat-release
# Register system with Red Hat
sudo subscription-manager register
sudo subscription-manager attach --auto
# Enable required repositories
sudo subscription-manager repos \
--enable ansible-automation-platform-2.3-for-rhel-9-x86_64-rpmsSee also: Ansible Community General Collection 7.0.0 Released: Key Changes and Enhancements
Download the Installer
# Download the setup bundle from access.redhat.com
# Navigate to: Downloads → Ansible Automation Platform → Setup Bundle
# Extract the bundle
tar xvf ansible-automation-platform-setup-bundle-2.3-*.tar.gz
cd ansible-automation-platform-setup-bundle-2.3-*/Installation Steps
Step 1: Edit the Inventory File
# Edit the inventory file
vi inventoryReplace the placeholder values with your actual passwords and registry credentials.
Step 2: Run the Installer
# Run the setup script
sudo ./setup.shThe installation takes 15-30 minutes depending on hardware and network speed.
Step 3: Verify Installation
# Check automation controller service
sudo systemctl status automation-controller
# Verify web interface is accessible
curl -k https://host1.example.com/api/v2/ping/Step 4: Access the Web Interface
Open your browser and navigate to https://host1.example.com. Log in with:
- Username:
admin - Password: The
admin_passwordfrom your inventory file
Post-Installation Configuration
# Example: Create a project via the API
- name: Configure Automation Controller
hosts: localhost
connection: local
vars:
controller_host: https://host1.example.com
controller_username: admin
controller_password: "{{ vault_controller_password }}"
tasks:
- name: Create organization
awx.awx.organization:
name: "My Organization"
description: "Main organization"
controller_host: "{{ controller_host }}"
controller_username: "{{ controller_username }}"
controller_password: "{{ controller_password }}"
validate_certs: false
- name: Create project
awx.awx.project:
name: "Ansible Playbooks"
organization: "My Organization"
scm_type: git
scm_url: "https://github.com/example/ansible-playbooks.git"
controller_host: "{{ controller_host }}"
controller_username: "{{ controller_username }}"
controller_password: "{{ controller_password }}"
validate_certs: falseSee also: Ansible Core 2.14.2 & Community 7.2.0: Latest Updates
Troubleshooting
Installer Fails with Registry Authentication Error
# Verify registry credentials
podman login registry.redhat.io
# If using a service account, ensure it has the correct permissionsCannot Access Web Interface
# Check firewall
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
# Check service status
sudo automation-controller-service statusFAQ
Is single-node suitable for production?
Single-node installations are designed for development, testing, and small teams (<20 users). For production with high availability, use a clustered deployment with external databases.
Can I upgrade from single-node to clustered later?
Yes. You can migrate from a standalone installation to a clustered deployment by updating the inventory file and re-running the installer with additional controller and database nodes.
What is the difference between hybrid and control node types?
A hybrid node acts as both a controller and execution node — it manages jobs and runs them. A control node only manages jobs and delegates execution to separate execution nodes.
How do I back up the internal database?
# Use the setup script's backup feature
sudo ./setup.sh -b
# Backup is stored in /var/lib/awx/backup/Category: installation
Watch the video: Install Ansible Automation Controller on a Single Host with Internal DB — Video Tutorial