Skip to content

Commit 6fc9d99

Browse files
AAP-52256 created modules for automation dashboard guide (ansible#4181) (ansible#4271)
* AAP-52256 created modules for automation dashboard guide * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules * AAP-52256 updated modules Co-authored-by: Elizabeth Murtough <[email protected]>
1 parent 7c23625 commit 6fc9d99

10 files changed

+598
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
:_mod-docs-content-type: ASSEMBLY
2+
3+
[id="assembly-appendix-inventory-file-automation-dashboard"]
4+
= Appendix
5+
6+
[role="_abstract"]
7+
The inventory variables required for installing {AutomationDashboardName} are described in the following section:
8+
9+
include::automation-dashboard/ref-automation-dashboard-inventory-variables.adoc[leveloffset=+1]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
ifdef::context[:parent-context: {context}]
2+
3+
[id="assembly-view-key-metrics"]
4+
5+
:context: assembly-view-key-metrics-ctxt
6+
7+
= View key usage metrics with {AutomationDashboardName}
8+
9+
The {AutomationDashboardName} utility is a web-based container application that provides key metrics related to job execution, efficiency, and the value derived from automation. {AutomationDashboardName} uses automation metrics to provide automation usage data from {PlatformNameShort}. 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.
10+
11+
{AutomationDashboardName} helps you to:
12+
13+
* Get a clear overview of the automation occurring in your environment.
14+
15+
* Track metrics, like time saved and errors reduced, to quantify the benefits of automation.
16+
17+
* Analyze job execution times and failure rates to pinpoint areas where automation can be improved.
18+
19+
* Use the data generated by {AutomationDashboardName} to make informed decisions about automation strategy, resource allocation, and prioritization of automation projects.
20+
21+
By effectively utilizing {AutomationDashboardName}, you can gain valuable insights into your {PlatformNameShort} usage and drive continuous improvement in your automation practices.
22+
23+
include::automation-dashboard/proc-installing-automation-dashboard.adoc[leveloffset=+1]
24+
25+
include::automation-dashboard/proc-integrating-automation-dashboard.adoc[leveloffset=+1]
26+
27+
include::automation-dashboard/proc-uninstalling-automation-dashboard.adoc[leveloffset=+1]
28+
29+
ifdef::parent-context[:context: {parent-context}]
30+
ifndef::parent-context[:!context:]
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
[id="con-filter-automation-data"]
3+
4+
= Filter and save automation data
5+
6+
{AutomationDashboardName} provides filtering options for analyzing your {PlatformNameShort} automation runs. You can select one or more filtering options, choose a time period and a currency, and save your report to the dashboard.
7+
8+
== Filters
9+
10+
You can select one or more of the following options to customize your report:
11+
12+
* **Template:** Select one or more Job Templates.
13+
* **Organization:** Select one or more Organizations.
14+
* **Project:** Select one or more Projects.
15+
* **Label:** Select one or more automations by label. Labels must be preconfigured and assigned to {PlatformNameShort} before they display in {AutomationDashboardName}. For more on configuring labels, see the _Creating a job template_ procedure.
16+
//emurtoug update the link to Creating Job Templates procedure
17+
18+
== Time period and currency
19+
20+
After you select your filters, choose a time period for analysis and a currency to demonstrate automation savings.
21+
22+
* A shorter time period is useful for specific automation use cases.
23+
* A longer time period is useful for overall platform usage and automation growth.
24+
25+
Changing from one currency to another does not convert the value. You must manually change the manual and automation cost figures to reflect the currency you select.
26+
27+
== Save a report
28+
29+
Use *Save as report* to save this report to your {AutomationDashboardName}. You can retrieve it at any time by using *Select a report*.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
[id="con-top-overview-usage"]
3+
4+
= Summary of top and overview usage
5+
6+
{AutomationDashboardName} displays a summary of the top and overview usage for your selected report. This includes the following data:
7+
8+
* **Total number of successful jobs**: This indicates the number of automation jobs that were completed successfully.
9+
* **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.
10+
* **Total number of unique hosts automated**: This is the number of controller inventory records you have automated.
11+
* **Total hours of automation**: This represents the cumulative time that {PlatformNameShort} spent running jobs.
12+
* **Number of times jobs were run**: This is the total number of individual job executions.
13+
* **Number of hosts jobs are running on**: This is the total number of hosts that jobs are executed upon.
14+
* **Top 5 projects**: This section lists the top five automation projects based on the number of running jobs.
15+
* **Top 5 users**: This section lists the top five users of {PlatformNameShort}, with a breakdown of the total number of jobs run by each user.
16+
[NOTE]
17+
Scheduled jobs can affect these results, because they do not represent a real, logged-in user.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
[id="proc-analyzing-costs-savings"]
3+
4+
= Analyzing costs and savings
5+
6+
The costs and savings analysis compares the cost of manual automation versus the cost of automation execution using {PlatformNameShort} to determine the total savings derived from automation execution.
7+
8+
To calculate your savings, use the following procedure:
9+
10+
.Procedure
11+
12+
. Use the **Average cost of an employee minut**e field to enter the average cost per minute for an engineer to manually run jobs.
13+
. Use the **Cost per minute of {PlatformNameShort}** field to enter an average cost per minute of running a job using {PlatformNameShort}. You can include the costs associated with creating the initial or ongoing automation execution.
14+
Based on these inputs, {AutomationDashboardName} provides the following data:
15+
16+
17+
* **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.
18+
* **Cost of automated execution**: This is the cost of automation execution using {PlatformNameShort}. This cost includes the resources consumed by {PlatformNameShort}, such as server time, processing power, and any other operational expenses associated with automation execution. It represents the actual cost incurred for automation execution.
19+
* **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 {PlatformNameShort}.
20+
* **Total hours saved/avoided**: This figure is calculated by adding host executions and automation creation time, then subtracting the running time in minutes.
21+
* **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.
22+
23+
[NOTE]
24+
You can export the data from your cost and savings analysis as a CSV.
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
// Module included in the following assemblies:
2+
// assembly-view-key-metrics.adoc
3+
4+
5+
[id="proc-installing-automation-dashboard"]
6+
7+
= Installing {AutomationDashboardName}
8+
9+
.Prerequisites
10+
11+
* One of the following tested configurations:
12+
** RHEL 9 x86 or ARM based physical or virtual host.
13+
** Postgres v15 database.
14+
[IMPORTANT]
15+
Do not attempt to install {AutomationDashboardName} on the same hosts as {PlatformNameShort}.
16+
* Access to _baseos_ and _{PlatformNameShort}stream_ repo packages for the RHEL 9 host.
17+
* 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.
18+
* URL details for access to your {PlatformNameShort} instances.
19+
* An {PlatformNameShort} 0Auth2 token, which is used for communication between the {PlatformNameShort} instances and {AutomationDashboardName}.
20+
* Access to download the installation bundle providing installation components for the {AutomationDashboardName}.
21+
* Open firewall access to allow for communications. This includes HTTPS/443 from the {AutomationDashboardName} to the {PlatformNameShort} instances, but ports are configurable.
22+
* Access to port 8447.
23+
* A supported version of `ansible-core` installed on supported RHEL versions.
24+
25+
.Procedure
26+
27+
Use the following steps to install {AutomationDashboardName} on your {RHEL} (RHEL) 9 host:
28+
29+
. Copy the installation source file to your RHEL 9 host.
30+
. Untar the installation source. This requires approximately 500 MB of disk space. For this example, the user's home directory (`/home/ec2-user`) is used.
31+
+
32+
[source,bash]
33+
----
34+
tar -xzf ansible-automation-reports-containerized-setup-bundle.tar.gz
35+
cd ansible-automation-reports-containerized-setup/
36+
----
37+
38+
. Verify that the necessary software is installed by running the following commands:
39+
+
40+
[source,bash]
41+
----
42+
sudo dnf install ansible-core
43+
ansible-galaxy collection install -r requirements.yml
44+
----
45+
46+
. Copy the example inventory file and modify it before running the installer.
47+
+
48+
[source,bash]
49+
----
50+
cp -i inventory.example inventory
51+
vi inventory
52+
----
53+
54+
. Review and update the inventory configuration with your specific environment details, including the following variables:
55+
.. All RHEL 9 host occurrences from `ec2-54-147-26-173.compute-1.amazonaws.com` to your FQDN host.
56+
.. All `_admin_password` or `_pg_password` values. Change the word `changeme` to match your passwords.
57+
58+
+
59+
[source,bash]
60+
----
61+
# This is our {AutomationDashboardName} reporter front-end application
62+
[automationreporter]
63+
ec2-54-147-26-173.compute-1.amazonaws.com ansible_connection=local
64+
65+
# These are any required vars for the installation and shouldn't be removed
66+
[automationreporter:vars]
67+
aap_auth_provider_name=AAP24-example.com-8443
68+
aap_auth_provider_protocol=https
69+
70+
# aap_auth_provider_url depends on AAP version:
71+
# AAP 2.4 (controller API): DNS_OR_IP/api
72+
# AAP 2.5 (gateway API): DNS_OR_IP
73+
aap_auth_provider_url=aap24.example.com:8443/api
74+
75+
# aap_auth_provider_user_data_endpoint depends on AAP version:
76+
# AAP 2.4 (controller API): /v2/me/
77+
# AAP 2.5 (gateway API): /api/gateway/v1/me/
78+
aap_auth_provider_user_data_endpoint=/v2/me/
79+
80+
aap_auth_provider_user_data_endpoint=/v2/me/
81+
aap_auth_provider_check_ssl=false
82+
aap_auth_provider_client_id=changeme
83+
aap_auth_provider_client_secret=changeme
84+
initial_sync_days=1
85+
86+
# This is for our Postgresql database, by default hosted on the same reporter host
87+
[database]
88+
ec2-54-147-26-173.compute-1.amazonaws.com ansible_connection=local
89+
90+
# Mandatory vars needed for the installation - modify values to match your environment
91+
[all:vars]
92+
postgresql_admin_username=postgres
93+
postgresql_admin_password=changeme
94+
95+
# AAP Reporter - mandatory
96+
# --------------------------
97+
reporter_pg_containerized=True
98+
reporter_admin_password=changeme
99+
reporter_pg_host=ec2-54-147-26-173.compute-1.amazonaws.com
100+
reporter_pg_username=aapreporter
101+
reporter_pg_password=changeme
102+
reporter_pg_database=aapreports
103+
104+
# The installation is supplied as a bundle containing the container images
105+
# Modify the bundle_dir if necessary to reflect your location
106+
bundle_install=true
107+
bundle_dir=/home/ec2-user/ansible-automation-reports-containerized-setup/bundle
108+
----
109+
110+
. Run the installer.
111+
+
112+
[source,bash]
113+
----
114+
ansible-playbook -i inventory ansible.containerized_installer.reporter_install
115+
----
116+
117+
.Verification
118+
119+
See the following example output for reference.
120+
121+
[source,text]
122+
----
123+
PLAY RECAP *********************************************************************************************************************************************
124+
ec2-54-147-26-173.compute-1.amazonaws.com : ok=126 changed=51 unreachable=0 failed=0 skipped=42 rescued=0 ignored=0
125+
localhost : ok=12 changed=0 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0
126+
----
127+
128+
.Troubleshooting
129+
130+
* Alternative configurations are possible (for example, the database for {AutomationDashboardName} can be set on a different host). This requires additional changes to variables in the inventory file.
131+
* Consult the section “Inventory variables” below for available variables.

0 commit comments

Comments
 (0)