|
| 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 | +** With an external database: Postgres v15 database. |
| 14 | +[IMPORTANT] |
| 15 | +Do not attempt to install {AutomationDashboardName} on the same host(s) as {PlatformNameShort}. |
| 16 | +* Automation Dashboard installation has been tested with the following configuration: |
| 17 | +** 80 GB Harddrive (depending on data growth) |
| 18 | +** 4 vCPUs x 16 GB Ram |
| 19 | +** Disk IOPS - 3000 |
| 20 | +** Handle up to 10,000 jobs/month and 47M summaries/month |
| 21 | +* Access to _baseos_ and _{PlatformNameShort}stream_ repo packages for the RHEL 9 host. |
| 22 | +* 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. |
| 23 | +* URL details for access to your {PlatformNameShort} instances. |
| 24 | +* An {PlatformNameShort} 0Auth2 token, which is used for communication between the {PlatformNameShort} instances and {AutomationDashboardName}. |
| 25 | +* Access to download the installation bundle providing installation components for the {AutomationDashboardName}. |
| 26 | +* Open firewall access to allow for bi-directional communication between AAP instances and the {AutomationDashboardName}. |
| 27 | +** This includes HTTPS/443 (or your {PlatformNameShort} configured port) from the dashboard to the Ansible Automation Platform instance(s). |
| 28 | +** Port 8447 is the default ingress port for the {AutomationDashboardName}. This port can be configured during installation. |
| 29 | +** RHEL firewall ports that may block 5432 to PostgreSQL. |
| 30 | +* A supported version of `ansible-core` installed on supported RHEL versions. |
| 31 | + |
| 32 | +.Procedure |
| 33 | + |
| 34 | +. Access the link: https://drive.google.com/drive/folders/1_neE8fWZ78oSsnSwoL6kfgbIIURsed1V[*.tar.gz*] installation source. |
| 35 | +. Copy the installation source file to your RHEL 9 host. |
| 36 | +. Untar the installation source. This will require ~500Mb. of disk space. Throughout this example we will use the ec2-user home directory, /home/<username>. |
| 37 | ++ |
| 38 | +[source,bash] |
| 39 | +---- |
| 40 | +tar -xzvf ansible-automation-dashboard-containerized-setup-bundle.tar.gz |
| 41 | +cd ansible-automation-dashboard-containerized-setup/ |
| 42 | +---- |
| 43 | + |
| 44 | +. Verify that the necessary software is installed by running the following commands: |
| 45 | ++ |
| 46 | +[source,bash] |
| 47 | +---- |
| 48 | +cd ansible-automation-dashboard-containerized-setup |
| 49 | +sudo dnf install ansible-core |
| 50 | +ansible-galaxy collection install -r requirements.yml |
| 51 | +---- |
| 52 | + |
| 53 | +. Create an application `client_id/client_secret` in your AAP instance: |
| 54 | +.. Create an OAuth2 application using the following steps : |
| 55 | +... *For Ansible 2.4*: |
| 56 | ++ |
| 57 | +* Navigate to https://AAP_GATEWAY_FQDN:/#/applications |
| 58 | ++ |
| 59 | +... *For Ansible 2.5 and 2.6*: |
| 60 | ++ |
| 61 | +* Navigate to https://AAP_Controller_FQDN:/access/applications |
| 62 | ++ |
| 63 | +... Add the following information: |
| 64 | ++ |
| 65 | +* *Name*: automation-dashboard-sso |
| 66 | +* *Authorization grant type*: authorization-code |
| 67 | +* *Organization*: Default |
| 68 | +* *Redirect URIs*: https://AUTOMATION_DASHBOARD_FQDN/auth-callback |
| 69 | +* *Client type*: Confidential |
| 70 | ++ |
| 71 | +[NOTE] |
| 72 | +The values for *Name*, *Organization*, and HTTPS port number for {PlatformNameShort} are configurable. The examples provided in this document assume use of port 443. |
| 73 | ++ |
| 74 | +.. Save the `client_id` and `client_secret information` inputs into the inventory file. |
| 75 | +.. Next, create an {PlatformNameShort} access token: |
| 76 | +... Navigate to https://AAP_GATEWAY_FQDN/#/users/<id>/tokens, and create a token using the following information: |
| 77 | ++ |
| 78 | +. OAuth application: automation-dashboard-sso |
| 79 | +. Scope: read |
| 80 | +. Store this access token value. The access token is used in `clusters.yaml`. |
| 81 | ++ |
| 82 | + |
| 83 | +. Copy the example inventory and modify it before running the installer. |
| 84 | ++ |
| 85 | +[source,bash] |
| 86 | +---- |
| 87 | +cp -i inventory.example inventory |
| 88 | +vi inventory |
| 89 | +---- |
| 90 | ++ |
| 91 | +[NOTE] |
| 92 | +==== |
| 93 | +* This is an example tested inventory containing default values for {PlatformNameShort} 2.4 and 2.5. |
| 94 | +* You must change the following values to use this inventory configuration in your environment: |
| 95 | +** Change the RHEL 9 host occurrences from `host.example.com` to your FQDN host |
| 96 | +** Change the phrase `TODO` to match your passwords within all `_admin_password` or `_pg_password` values. |
| 97 | +==== |
| 98 | ++ |
| 99 | +[source,bash] |
| 100 | +---- |
| 101 | +# This is our Automation Dashboard front-end application |
| 102 | +[automationdashboard] |
| 103 | +host.example.com ansible_connection=local |
| 104 | +
|
| 105 | +# These are required vars for the installation and should not be removed |
| 106 | +[automationdashboard:vars] |
| 107 | +# Configure AAP OAuth2 authentication. |
| 108 | +# aap_auth_provider_name - name as shown on login page. |
| 109 | +aap_auth_provider_name=Ansible Automation Platform |
| 110 | +# aap_auth_provider_protocol - http or https |
| 111 | +aap_auth_provider_protocol=https |
| 112 | +# AAP version - 2.4, 2.5 or 2.6 |
| 113 | +aap_auth_provider_aap_version=2.5 |
| 114 | +# aap_auth_provider_host - AAP IP or DNS name, with optional port |
| 115 | +aap_auth_provider_host=my-aap.example.com |
| 116 | +# aap_auth_provider_check_ssl - enforce TLS check or not. |
| 117 | +aap_auth_provider_check_ssl=true |
| 118 | +# aap_auth_provider_client_id and aap_auth_provider_client_secret - |
| 119 | +# they are obtained from AAP when OAuth2 application is created in AAP. |
| 120 | +aap_auth_provider_client_id=TODO |
| 121 | +aap_auth_provider_client_secret=TODO |
| 122 | +
|
| 123 | +
|
| 124 | +# Specify amount of old data to synchronoize after installation. |
| 125 | +# The initial_sync_days=N requests N days of old data, counting from "today". |
| 126 | +# The initial_sync_since requests data from the specified data until "today". |
| 127 | +# If both are specified, the initial_sync_since will be used. |
| 128 | +initial_sync_days=1 |
| 129 | +# initial_sync_since=2025-08-08 |
| 130 | +
|
| 131 | +# Hide warnings when insecure https request are made. |
| 132 | +# Use this if your AAP uses self-signed TLS certificate. |
| 133 | +# show_urllib3_insecure_request_warning=False |
| 134 | +
|
| 135 | +# Force clean install-like |
| 136 | +# dashboard_update_secret=true |
| 137 | +
|
| 138 | +# HTTP/HTTPS settings |
| 139 | +# nginx_disable_https=true |
| 140 | +# Change nginx_http_port or nginx_https_port if you want to access dashboard on a different TCP port. |
| 141 | +# nginx_http_port=8083 |
| 142 | +# nginx_https_port=8447 |
| 143 | +# TLS certificate configuration |
| 144 | +# The dashboard_tls_cert needs: |
| 145 | +# - contain server certificate, intermediate CA certificates and root CA certificate. |
| 146 | +# - the server certificate must be the first one in the file. |
| 147 | +# dashboard_tls_cert=/path/to/tls/dashboard.crt |
| 148 | +# dashboard_tls_key=/path/to/tls/dashboard.key |
| 149 | +
|
| 150 | +# Enable Django DEBUG. |
| 151 | +# django_debug=True |
| 152 | +
|
| 153 | +[database] |
| 154 | +host.example.com ansible_connection=local |
| 155 | +
|
| 156 | +[all:vars] |
| 157 | +postgresql_admin_username=postgres |
| 158 | +postgresql_admin_password=TODO |
| 159 | +
|
| 160 | +# AAP Dashboard - mandatory |
| 161 | +# -------------------------- |
| 162 | +dashboard_pg_containerized=True |
| 163 | +dashboard_admin_password=TODO |
| 164 | +dashboard_pg_host=host.example.com |
| 165 | +dashboard_pg_username=aapdashboard |
| 166 | +dashboard_pg_password=TODO |
| 167 | +dashboard_pg_database=aapdashboard |
| 168 | +# |
| 169 | +bundle_install=true |
| 170 | +# <full path to the bundle directory> |
| 171 | +bundle_dir='{{ lookup("ansible.builtin.env", "PWD") }}/bundle' |
| 172 | +---- |
| 173 | + |
| 174 | +. Run the installer. |
| 175 | ++ |
| 176 | +[source,bash] |
| 177 | +---- |
| 178 | +ansible-playbook -i inventory collections/ansible_collections/ansible/containerized_installer/playbooks/reporter_install.yml |
| 179 | +---- |
| 180 | + |
| 181 | +.Verification |
| 182 | + |
| 183 | +For reference, see the following example output: |
| 184 | + |
| 185 | +[source,text] |
| 186 | +---- |
| 187 | +PLAY RECAP ********************************************************************************************************************************************* |
| 188 | +ec2-54-147-26-173.compute-1.amazonaws.com : ok=126 changed=51 unreachable=0 failed=0 skipped=42 rescued=0 ignored=0 |
| 189 | +localhost : ok=12 changed=0 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0 |
| 190 | +---- |
| 191 | + |
| 192 | +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. |
| 193 | + |
| 194 | +//emurtoug note to add link to appendix |
0 commit comments