Module 1: Welcome to AAP Controller 101

Welcome! In this lab, we will explore the web-based user interface (web UI) of the Ansible Automation Platform’s automation controller.

Through hands-on exercises, we will demonstrate how easy it is to use the web UI to manage and run your Ansible Playbooks. You will start by exploring the interface, creating an Inventory to manage servers, importing playbooks into Projects, adding Job Templates to run those playbooks, and finally, creating a Workflow to link them together.


Laboratory Tips

Before we begin, here are some basic tips to improve your lab experience:

  1. The instructions sidebar (where you are reading this) can be resized by dragging its border. This is useful if you need extra space for the main panel.

  2. Make sure to complete the hands-on steps in each challenge before clicking Next. Some challenges validate your work, and if something is missing you will see a "validation failed" message with details on what needs to be fixed.

  3. When you finish a challenge, click the blue Next button at the bottom of the instructions to proceed.

  4. If you get stuck, click Solve to auto-complete the current challenge for you. This sets up all the objects needed so you can continue with the next challenge.

  5. You will find the credentials to log into the automation controller in the next challenge.

  6. To begin the exercises, click the blue Next button below.


What You’ll Build

Here is a preview of the exercises ahead. Each challenge builds on the previous one, so by the end of the lab you will have a fully operational automation setup:

  1. Explore the Dashboard — Get familiar with the automation controller web UI, its main sections, and navigation.

  2. Create an Inventory — Define the hosts and groups that your playbooks will target.

  3. Import a Project — Connect a Git repository containing Ansible Playbooks into the controller.

  4. Explore Credentials — See how the controller securely stores and manages authentication for your managed hosts.

  5. Create a Job Template — Bring your inventory, project, and credentials together to run a playbook from the web UI.

  6. Import a second Project — Add another Git repository with additional playbooks for upcoming challenges.

  7. Create more Job Templates — Build on what you’ve learned by creating templates that use different playbooks and target different hosts.

  8. Build a Workflow — Chain multiple job templates together with conditional logic and parallel execution.

  9. Add a Survey — Prompt for user input at launch time to customize each job run.


Controller as Code (CaC) Introduction

Throughout this workshop, you will create automation controller objects (inventories, projects, credentials, job templates, and workflows) using the web UI. However, in production environments, these same objects can be managed declaratively as code using the infra.aap_configuration collection.

This approach, known as Controller as Code (CaC), allows you to:

  • Define all controller objects as YAML variables

  • Apply them idempotently with a single playbook

  • Version-control your entire controller configuration

  • Reproduce environments consistently across dev, staging, and production

At the end of each challenge, you will find a Controller as Code Alternative section showing how the same objects you created in the UI can be expressed as declarative YAML. These sections reference the controller-as-code/ directory in this repository.


Troubleshooting

If you encounter an issue, please notify the lab facilitator for assistance or open an issue on GitHub.