Automation Controller Basics

From Command Line Chaos to Centralized Control

For two years, I managed our Ansible automation from the command line. Playbooks lived in Git. Credentials lived in Ansible Vault files. Access control meant "anyone with the Git repo and vault password." Audit trail meant checking Git commit history and hoping people documented what they ran.

Then came the compliance audit.

"Who ran automation against production last Tuesday at 3 PM?" I didn't know.

"Can you prove what changed?" Not easily.

"Who has access to production credentials?" Everyone with the vault password.

That audit failure led me to Automation Controller. Within a week, I had centralized execution, role-based access control, complete audit trails, and secure credential management. The next audit? We passed with flying colors.

This article teaches you the Automation Controller fundamentals I wish I'd learned earlier.

What You'll Learn

  • Organizations, Teams, and Users - multi-tenancy structure

  • Projects and SCM integration - managing playbook content

  • Inventories - static and dynamic host management

  • Credentials - secure secret storage and usage

  • Job Templates - parameterized automation execution

  • Running your first job in Automation Controller

  • Activity streams and audit trails

Understanding Automation Controller Structure

Automation Controller organizes resources in a hierarchical structure designed for enterprise multi-tenancy.

Resource Hierarchy

spinner

Organizations: Tenancy Boundaries

Organizations are the top-level container for all AAP resources. They provide complete isolation between different teams or business units.

Creating an Organization

Via Web UI:

Via API:

Via awx CLI:

Real-World Organization Structure

Our production setup:

Why separate organizations?

  • Complete credential isolation

  • Independent resource quotas

  • Separate audit trails

  • Different team structures

Teams: Role-Based Groupings

Teams group users and assign permissions within an organization.

Creating Teams

Team Permissions

Teams can be granted different permission levels:

Adding Users to Teams

Projects: SCM Integration

Projects connect Automation Controller to your source code management system (Git, SVN, etc.) where playbooks are stored.

Creating a Project

Via Web UI:

Via API:

Project Best Practices

Use Git Branches for Environments:

Enable Update on Launch:

Use Tags for Releases:

Real-world insight: We maintain separate projects for each branch and environment. This prevents accidental production deployments from development branches.

Inventories: Managing Hosts

Inventories define what hosts automation runs against. AAP supports static and dynamic inventories.

Static Inventory

Manual host definitions:

Via Web UI:

Via API:

Dynamic Inventory

Automatically sync hosts from external sources:

AWS EC2 Example:

Azure Example:

Custom Inventory Script:

Real-world inventory strategy:

Credentials: Secure Secret Management

Credentials store authentication information securely, encrypted at rest.

Built-in Credential Types

Creating Credentials

SSH Machine Credential:

AWS Credential:

Vault Credential:

Credential Security

Key features:

Real-world practice:

Job Templates: Parameterized Execution

Job Templates combine Projects, Inventories, and Credentials into executable automation.

Creating a Job Template

Advanced Job Template Features

Survey (User Input):

Prompt on Launch:

Instance Groups:

Running Your First Job

Via Web UI

Via API

Via awx CLI

Job Execution Flow

spinner

Activity Stream and Audit Trail

Every action in Automation Controller is logged in the Activity Stream.

Viewing Activity

Via Web UI:

What's Logged

Real-World Audit Example

Use cases:

  • Compliance audits: "Who modified this job template?"

  • Security incidents: "Who accessed production last night?"

  • Troubleshooting: "What changed before automation broke?"

Practical Example: Complete Setup

Let's walk through setting up a complete automation workflow.

Scenario: Web Application Deployment

Step 1: Create Organization

Step 2: Create Team

Step 3: Add Users

Step 4: Create Credentials

Step 5: Create Project

Step 6: Create Inventory

Step 7: Create Job Template

Step 8: Grant Permissions

Step 9: Launch Job

Key Takeaways

βœ… Organizations provide multi-tenancy isolation βœ… Teams group users with role-based permissions βœ… Projects connect to Git for version-controlled playbooks βœ… Inventories can be static or dynamically synced βœ… Credentials are encrypted and access-controlled βœ… Job Templates parameterize automation execution βœ… Activity Stream provides complete audit trail

What's Next

Now that you understand Automation Controller basics, the next article dives deeper into Projects and Inventories - multi-repository management, cloud dynamic inventories, smart inventories, and advanced inventory patterns.


Next Article: Projects and Inventories in AAP β†’

Additional Resources


Part of the Ansible Automation Platform 101 Series

Last updated