Using Automation Dashboard
Visualize, measure, and optimize automation usage
Abstract
Preface Copy linkLink copied to clipboard!
This guide describes how to install and configure Automation Dashboard to evaluate automation usage across your environments and the savings associated with it.
Providing feedback on Red Hat documentation Copy linkLink copied to clipboard!
If you have a suggestion to improve this documentation, or find an error, you can contact technical support at https://access.redhat.com to open a request.
Chapter 1. View key usage metrics with Automation Dashboard Copy linkLink copied to clipboard!
The Automation Dashboard utility is a web-based container application that provides key metrics related to job execution, efficiency, and the value derived from automation. Automation Dashboard uses automation metrics to provide automation usage data from Ansible Automation Platform. You can use this data to determine the cost of performing tasks manually versus the cost of performing tasks through automation. This comparison is used to demonstrate the savings achievable through automation.
Automation Dashboard is designed to help you:
- Get a clear overview of the automation occurring in your environment.
- Track metrics, like time saved and errors reduced, to quantify the benefits of automation.
- Analyze job execution times and failure rates to pinpoint areas where automation can be improved.
- Use the data generated by Automation Dashboard to make informed decisions about automation strategy, resource allocation, and prioritization of automation projects.
By effectively utilizing Automation Dashboard, you can gain valuable insights into your Ansible Automation Platform usage and drive continuous improvement in your automation practices.
1.1. Installing Automation Dashboard Copy linkLink copied to clipboard!
Prerequisites
One of the following tested configurations:
- RHEL 9 x86 or ARM based physical or virtual host.
With an external database: Postgres v15 database.
ImportantDo not attempt to install Automation Dashboard on the same host(s) as Ansible Automation Platform.
Automation Dashboard installation has been tested with the following configuration:
- 80 GB Harddrive (depending on data growth)
- 4 vCPUs x 16 GB Ram
- Disk IOPS - 3000
- Handle up to 10,000 jobs/month and 47M summaries/month
- Access to baseos and Ansible Automation Platformstream repo packages for the RHEL 9 host.
-
A non-root login account to the RHEL 9 host for installation. This requires passwordless sudo access to root as well. By default, we use the
$HOMEDIR
of the user account. - URL details for access to your Ansible Automation Platform instances.
- An Ansible Automation Platform OAuth2 token, which is used for communication between the Ansible Automation Platform instances and Automation Dashboard.
- Access to download the installation bundle providing installation components for the Automation Dashboard.
Open firewall access to allow for bi-directional communication between AAP instances and the Automation Dashboard.
- This includes HTTPS/443 (or your Ansible Automation Platform configured port) from the dashboard to the Ansible Automation Platform instance(s).
- Port 8447 is the default ingress port for the Automation Dashboard. This port can be configured during installation.
- RHEL firewall ports that may block 5432 to PostgreSQL.
-
A supported version of
ansible-core
installed on supported RHEL versions.
Procedure
- Download the latest installer tarball from access.redhat.com. Navigate to Downloads > Red Hat Ansible Automation Platform Product Software.
- Copy the installation source file to your RHEL 9 host.
Untar the installation source. This will require ~500Mb. of disk space. Throughout this example we will use the ec2-user home directory:
/home/<username>
.tar -xzvf ansible-automation-dashboard-containerized-setup-bundle-0.1-x86_64.tar.gz cd ansible-automation-dashboard-containerized-setup/
tar -xzvf ansible-automation-dashboard-containerized-setup-bundle-0.1-x86_64.tar.gz cd ansible-automation-dashboard-containerized-setup/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the necessary software is installed by running the following commands:
cd ansible-automation-dashboard-containerized-setup sudo dnf install ansible-core ansible-galaxy collection install -r requirements.yml
cd ansible-automation-dashboard-containerized-setup sudo dnf install ansible-core ansible-galaxy collection install -r requirements.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create an application
client_id/client_secret
in your Ansible Automation Platform instance:Create an OAuth2 application using the following steps :
For Ansible 2.4:
- Navigate to https://AAP_GATEWAY_FQDN/#/applications
For Ansible 2.5 and 2.6:
- Navigate to https://AAP_Controller_FQDN/access/applications
Add the following information:
- Name: automation-dashboard-sso
- Authorization grant type: authorization-code
- Organization: Default
- Redirect URIs: https://AUTOMATION_DASHBOARD_FQDN/auth-callback
Client type: Confidential
NoteThe values for Name, Organization, and HTTPS port number for Ansible Automation Platform are configurable. The examples provided in this document assume use of port 443.
-
Save the
client_id
andclient_secret information
inputs into the inventory file. Create an Ansible Automation Platform access token:
Navigate to https://AAP_GATEWAY_FQDN/#/users/<id>/tokens, and create a token using the following information:
- OAuth application: automation-dashboard-sso
- Scope: read
-
Store this access token value. The access token is used in
clusters.yaml
.
Copy the example inventory and modify it before running the installer.
cp -i inventory.example inventory vi inventory
cp -i inventory.example inventory vi inventory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note- This is an example tested inventory containing default values for Ansible Automation Platform 2.4, 2.5, and 2.6.
You must change the following values to use this inventory configuration in your environment:
-
Change the RHEL 9 host occurrences from
host.example.com
to your FQDN host -
Change the phrase
TODO
to match your passwords within all_admin_password
or_pg_password
values.
-
Change the RHEL 9 host occurrences from
- For more information, see the Inventory variables section of this document.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the installer.
ansible-playbook -i inventory ansible.containerized_installer.dashboard_install
ansible-playbook -i inventory ansible.containerized_installer.dashboard_install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
For reference, see the following example output:
PLAY RECAP ********************************************************************************************************************************************* ec2-54-147-26-173.compute-1.amazonaws.com : ok=126 changed=51 unreachable=0 failed=0 skipped=42 rescued=0 ignored=0 localhost : ok=12 changed=0 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0
PLAY RECAP *********************************************************************************************************************************************
ec2-54-147-26-173.compute-1.amazonaws.com : ok=126 changed=51 unreachable=0 failed=0 skipped=42 rescued=0 ignored=0
localhost : ok=12 changed=0 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0
Alternative configurations are possible (for example, the database for Automation Dashboard can be set on a different host). This requires additional changes to variables in the inventory file. Consult the Inventory variables section of this document for available variables.
1.2. Integrating Automation Dashboard with your Ansible Automation Platform Copy linkLink copied to clipboard!
Integrate your Ansible Automation Platform instances into the Automation Dashboard configuration in order to collect and visualise data and gain insights into your automation.
Procedure
Verify that Automation Dashboard is running on https port 8447 on your RHEL host. This verification will require your Ansible Automation Platform login details.
NotePort 8447 is enabled by default, but this is configurable.
Your Ansible Automation Platform instances are added into
clusters.yml
using the following information:- Your Ansible Automation Platform URLs/ports for front-end access
A preconfigured Ansible Automation Platform OAuth token for read access
NoteIf you don’t have access to Ansible Automation Platform, consult your administrator.
- Configure a personal access token. For more information, see Configuring access to external applications with token-based authentication.
Once you have configured your access token, run the following command:
cp clusters.example.yaml clusters.yaml vi clusters.yaml
cp clusters.example.yaml clusters.yaml vi clusters.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can add one or more Ansible Automation Platform instances (of the same Ansible Automation Platform version) into the Automation Dashboard configuration for pulling and combining data by using the following:
NoteIf you only have one Ansible Automation Platform instance, then remove the second entry.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the following commands to load and activate your Automation Dashboard configuration:
podman cp clusters.yaml automation-dashboard-web:/ podman exec automation-dashboard-web /venv/bin/python ./manage.py setclusters /clusters.yaml
podman cp clusters.yaml automation-dashboard-web:/ podman exec automation-dashboard-web /venv/bin/python ./manage.py setclusters /clusters.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For reference, see the following example output:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteAutomation Dashboard checks for Ansible Automation Platform 2.4, 2.5, and 2.6 instances. As shown in the example output, this can result in 404 errors. For more information on errors, see the Verification section of this chapter.
Use the following command to test your Automation Dashboard configuration by manually fetching data:
podman exec automation-dashboard-web /venv/bin/python ./manage.py syncdata --since=2025-04-01 --until=2025-06-01 Successfully created Sync task for Cluster https://my-aap.example.com:443.
podman exec automation-dashboard-web /venv/bin/python ./manage.py syncdata --since=2025-04-01 --until=2025-06-01 Successfully created Sync task for Cluster https://my-aap.example.com:443.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteConsider using a short date interval to reduce test time. The format is YYYY-MM-DD.
You can then use
journalctl
to monitor progress:sudo journalctl -fn10
sudo journalctl -fn10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Refresh your browser to view retrieved data within your Automation Dashboard.
Verification
If you encounter error messages during installation, consult the following table:
Issue | Possible Cause | Solution |
401 errors | This is an unauthorized access message indicating authentication errors such as incorrect credentials or tokens |
Verify that your access token is correct in |
404 errors | This is a “not found” message indicating that something isn’t configured correctly or pointing to the correct endpoint |
Verify that your Ansible Automation Platform instance URLs used in |
A successful installation should be running the following three container services:
podman ps --all --format "{{.Names}}" postgresql automation-dashboard-task automation-dashboard-web
podman ps --all --format "{{.Names}}"
postgresql
automation-dashboard-task
automation-dashboard-web
You can check your container logs by running the following:
You can check how the services are running by using systemd
:
1.3. Uninstalling Automation Dashboard Copy linkLink copied to clipboard!
Run the following command to uninstall Automation Dashboard and its dependencies, including the PostgreSQL database container:
ansible-playbook -i inventory ansible.containerized_installer.dashboard_uninstall
ansible-playbook -i inventory
ansible.containerized_installer.dashboard_uninstall
Chapter 2. Filter and save automation data for reporting Copy linkLink copied to clipboard!
Automation Dashboard provides filtering options to analyze your Ansible Automation Platform automation runs. You can select one or more filtering options to customize your report, select a time period and a currency, and save your report to your Automation Dashboard.
2.1. Filters Copy linkLink copied to clipboard!
Select one or more of the following filtering options to customize your report:
- Template: allows you to select one or more Job Templates
- Organization: allows you to select one or more Organizations
- Project: allows you to select one or more Projects
- Label: allows you to select one or more automations by label. Labels must be preconfigured and assigned to Ansible Automation Platform in order to be displayed in Automation Dashboard. For more information on configuring labels, see Creating a job template.
2.2. Time period and currency Copy linkLink copied to clipboard!
After selecting your filters, select a time period for analysis, and select a currency to demonstrate automation savings.
- A shorter time period is useful when considering specific automation use cases.
- A longer time period is useful when considering overall platform usage and automation growth.
- Changing from one currency to another does not convert the value of that currency. You must manually change the manual and automation cost figures to reflect whichever currency you select.
2.3. Saving a report Copy linkLink copied to clipboard!
Use Save as Report to save this report to your Automation Dashboard. You can retrieve it at any time by using Select a Report.
Chapter 3. Summary of top and overview usage Copy linkLink copied to clipboard!
Automation Dashboard displays a summary of the top and overview usage for your selected report. This includes the following data:
- Total number of successful jobs: This indicates the number of automation jobs that were completed successfully.
- Total number of failed jobs: This shows the number of automation jobs that encountered errors. Analyzing these failures can help improve automation throughput, reduce errors, and improve efficiency.
- Total number of unique hosts automated: This is the number of Controller inventory records you have automated.
- Total hours of automation: This represents the cumulative time that Ansible Automation Platform spent running jobs.
- Number of times jobs were run: This is the total number of individual job executions.
- Number of hosts jobs are running on: This is the total number of hosts that jobs are executed upon.
- Top 5 projects: This section lists the top five automation projects based on the number of running jobs.
Top 5 users: This section lists the top five users of Ansible Automation Platform, with a breakdown of the total number of jobs run by each user.
NoteScheduled jobs can affect these results, because they do not represent a real, logged-in user.
Chapter 4. Analyzing costs and savings Copy linkLink copied to clipboard!
The costs and savings analysis compares the cost of manual automation versus the cost of automation execution using Ansible Automation Platform in order to determine the total savings derived from automation execution.
To calculate your savings, use the following procedure:
Procedure
- Use the Average cost per minute to manually run the job field to enter the average cost per minute for an engineer to manually run jobs.
- Use the Average cost per minute of running on Ansible Automation Platform field to enter an average cost per minute of running a job using Ansible Automation Platform. You can include the costs associated with creating the initial or ongoing automation execution.
- Select Time taken to create automation into calculation to include the costs associated with creating the initial or ongoing automation execution.
Based on these inputs, Automation Dashboard provides the following data:
- Cost of manual automation: This number represents the estimated cost of manually performing all of the automated tasks. This is an estimated value, not an actual expenditure. It represents the potential expenses that the organization would incur without automation. The calculation is based on the time taken to manually execute each job, multiplied by a labor cost rate.
- Cost of automated execution: This is the cost of automation execution using Ansible Automation Platform. This cost includes the resources consumed by Ansible Automation Platform, such as server time, processing power, and any other operational expenses associated with automation execution. It represents the actual cost incurred for automation execution.
- Total savings/cost avoided: This is the difference between the Cost of manual automation and the Cost of automated execution. This is a key metric for demonstrating the return on investment attainable by using Ansible Automation Platform.
- Total hours saved/avoided: This figure is calculated by adding host executions and automation creation time, then subtracting the running time in minutes.
Time taken to manually execute (min): This metric represents the amount of time it would take for a user to perform the task manually on a host. It is an input provided to compare the value of manual execution and automated execution using the time taken by the organization to manually automate.
NoteYou can export the data from your cost and savings analysis as a CSV.
Chapter 5. Appendix Copy linkLink copied to clipboard!
The inventory variables required by the Automation Dashboard installer are described in the following table:
5.1. Inventory variables Copy linkLink copied to clipboard!
The following variables control how Automation Dashboard interacts with remote hosts.
Inventory variable | Description |
---|---|
|
Natural language name shown on the login page. Default: |
| Enter http or https |
| Enter one value - the version of AAP , valid values are 2.4, 2.5 or 2.6 |
| Ansible Automation Platform IP or DNS name, with optional port |
| Enforce TLS check or not |
| Ansible Automation Platform OAuth2 application client_id |
| Ansible Automation Platform OAuth2 application client_secret |
| Requests x number of days of old data, counting from "today" |
| Requests data from the specified data until "today" |
|
Forces regeneration of autogenerated podman secrets. A podman secret is used to store the password for database access. Set |
| Allows using http instead of https for Automation Dashboard |
| Configures the HTTP port for Automation Dashboard |
| Configures the HTTPS port for Automation Dashboard |
| TLS server certificate for dashboard |
| TLS server certificate key for dashboard |
| Admin username to access PostgreSQL database |
| Admin password to access PostgreSQL database |
| Admin password to access PostgreSQL database |
|
Username used to pull container images from Note End users can omit this variable. |
|
Username used to pull container images from Note End users can omit this variable. |
|
Password used to pull container images from Note End users can omit this variable. |
|
This configures the installer to install and configure the database as a container on the same host as Automation Dashboard. |
|
This is the password for the Automation Dashboard administrator user. The username is always |
|
The |
|
Indicates the required container images are already included in the installation bundle (tarball). It must be set to |
|
This is the directory where the installation bundle was unpacked |