You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learn/vp_agof.adoc
+55-41Lines changed: 55 additions & 41 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,44 +30,36 @@ In the Ansible GitOps framework, an ansible controller refers to any machine tha
30
30
31
31
THe link:https://docs.ansible.com/platform.html[Automation controller] is the command and control center for Red Hat Ansible Automation Platform, replacing Ansible Tower. It includes a webUI, API, role-based access control (RBAC), a workflow visualizer, and continuous integration and continuous delivery (CI/CD) integrations to help you organize and manage automation across your enterprise.
32
32
33
-
The Automation Controller serves as the centralized platform for managing and executing automation across infrastructure. It allows users to create job templates that standardize the deployment and execution of Ansible playbooks, making automation more consistent and reusable. It integrates essential components such as execution environments for consistent automation execution, projects (repositories for automation content), inventories (target endpoints), and credentials (for secure access to resources).
33
+
The Automation Controller serves as the centralized platform for managing and executing automation across infrastructure. Use the Automation Controller to create job templates that standardize the deployment and execution of Ansible playbooks, making automation more consistent and reusable. It integrates essential components such as execution environments for consistent automation execution, projects (repositories for automation content), inventories (target endpoints), and credentials (for secure access to resources).
34
34
35
35
The webUI provides an intuitive interface to build, monitor, and manage automation workflows, while the API offers seamless integration with other tools, such as CI/CD pipelines or orchestration platforms. Overall, the Automation Controller streamlines the automation lifecycle, ensuring a scalable, secure, and maintainable automation environment.
36
36
37
37
== Ansible framework methods
38
38
39
-
The three main methods for setting up an Ansible framework in relation to Ansible Automation Platform (AAP) 2.4 can be summarized as follows:
39
+
The three main methods for setting up an Ansible framework are as follows:
40
40
41
41
=== Method 1: AWS-based install
42
42
43
-
This method is ideal for organizations that prefer deploying AAP on AWS infrastructure. This default install process in AAP 2.4 uses AWS by default and offers a fully automated setup. It requires AWS credentials, builds an AWS image with Red Hat's ImageBuilder, and sets up AAP within an AWS VPC and subnet. The installation program creates all the necessary resources, including AAP Controllers and, optionally, additional components such as Automation Hub.
43
+
This method is ideal for organizations that prefer deploying AAP on AWS infrastructure. This default install process in AAP 2.4 uses AWS by default and offers a fully automated setup. It requires AWS credentials, builds an AWS image with Red Hat's ImageBuilder, and sets up AAP within an AWS VPC and subnet. The installation program creates all the necessary resources, including AAP Controllers and, optionally, additional components such as the Automation Hub.
44
44
45
-
*Pros*: This is the easiest method if you already use AWS, as it automates the provisioning of resources, including VMs and network configurations.
46
-
47
-
*Cons*: This requires AWS infrastructure and credentials. This is not ideal if you're working in an on-premises environment or a cloud platform other than AWS.
45
+
This is the easiest method if you already use AWS, as it automates the provisioning of resources, including VMs and network configurations. This requires AWS infrastructure and credentials.
48
46
49
47
=== Method 2: Pre-configured VMs Install
50
48
51
-
This method allows the installation of AAP on pre-configured Red Hat Enterprise Linux (RHEL) VMs. It requires you to provide an inventory file that specifies details about the VMs or instances where AAP will be installed. It is designed for users with existing infrastructure who want to deploy AAP without depending on AWS. If you need to install a pattern on a cluster with a different topology than this, use the API install mechanism.
52
-
53
-
*Pros*: Useful if you already have pre-configured VMs or bare-metal instances running RHEL. It allows greater flexibility and control over the environment.
54
-
55
-
*Cons*: Requires more manual effort to configure VMs and may need additional customization for non-standard topologies.
49
+
This method allows the installation of AAP on pre-configured Red Hat Enterprise Linux (RHEL) VMs. You need to provide an inventory file that specifies details about the VMs or instances where AAP will be installed. It is designed for users with existing infrastructure who want to deploy AAP without depending on AWS. If you need to install a pattern on a cluster with a different topology than this, use the API install mechanism.
56
50
57
-
This model has been tested with up to two RHEL VMs (one for AAP and one for Hub).
51
+
THis method is useful if you already have pre-configured VMs or bare-metal instances running RHEL. It allows greater flexibility and control over the environment. Using this method requires more manual effort to configure VMs and might need additional customization for non-standard topologies. This model has been tested with up to two RHEL VMs (one for AAP and one for Hub).
58
52
59
53
The requirements for this mode are as follows:
60
54
61
55
* Must be running a version of RHEL that AAP supports
62
56
* Must be properly entitled with a subscription that makes the appropriate AAP repository available
In this method, you provide an existing Ansible Automation Platform (AAP) Controller endpoint, either on bare metal or in a private cloud, without needing AWS or pre-configured VMs. You specify the manifest, endpoint hostname, admin credentials, and pass the installation process to a predefined `controller_config_dir`. This is suitable for complex or custom topologies where you want full control over the deployment.
67
61
68
-
*Pros*: Provides maximum flexibility and is designed for advanced users who have their own AAP installations, either on-prem or in complex environments that do not fit into the default or AWS-centric model.
69
-
70
-
*Cons*: Requires an existing AAP controller, which might not be ideal for users new to AAP or those looking for more hands-off installation
62
+
This method provides maximum flexibility and is designed for advanced users who have their own AAP installations, either on-prem or in complex environments that do not fit into the default or AWS-centric model. You need an existing AAP controller, which might not be ideal for users new to AAP or those looking for more hands-off installation
71
63
72
64
== Creating a validated pattern using the AGOF framework
73
65
@@ -120,9 +112,8 @@ You need to provide some key information to a file named `agof_vault.yml` create
| A Red Hat offline token used to build the RHEL image on https://console.redhat.com[console.redhat.com].
137
+
a| A Red Hat offline token used to build the RHEL image on https://console.redhat.com[console.redhat.com].
147
138
148
139
[NOTE]
149
140
====
@@ -166,7 +157,7 @@ Click the `GENERATE TOKEN` link at https://access.redhat.com/management/api[Red
166
157
| The Organization Number (Org ID) attached to your Red Hat Subscription for RHEL and AAP.
167
158
168
159
| `activation_key_vault`
169
-
| The name of an Activation Key to embed in the imagebuilder image.
160
+
a| The name of an Activation Key to embed in the imagebuilder image.
170
161
171
162
[NOTE]
172
163
====
@@ -178,7 +169,7 @@ Click the `Create Activation Keys` link at https://console.redhat.com[console.re
178
169
#imagebuilder_ami: 'The ID of an AWS AMI image, preferably one that was built with this toolkit'
179
170
180
171
| `automation_hub_token_vault`
181
-
| A token associated with your AAP subscription used to retrieve Automation Hub content.
172
+
a| A token associated with your AAP subscription used to retrieve Automation Hub content.
182
173
183
174
[NOTE]
184
175
====
@@ -192,25 +183,23 @@ Click the `Load token` link at https://console.redhat.com[console.redhat.com] >
192
183
| Optional: The private automation hub URL for validated content.
193
184
|===
194
185
195
-
196
-
197
186
. Edit the file and add the following:
198
187
199
188
* `controller_config_dir:` set it's value to `{{ '~/agof_minimal_demo/config' | expanduser }}`.
200
-
* `db_password:` set an appropriate value for the postgres password for the DB instance for example `test`.
201
-
* `agof_statedir:` set its value to "{{ '~/agof' | expanduser }}"
202
-
* `agof_iac_repo:` set its value to "https://github.com/mhjacks/agof_demo_config.git"
189
+
* `db_password:` sets an appropriate value for the postgres password for the DB instance for example `test`.
190
+
* `agof_statedir:` set its value to `"{{ '~/agof' | expanduser }}"`
191
+
* `agof_iac_repo:` set its value to `"https://github.com/mhjacks/agof_demo_config.git"`
203
192
204
-
. Optional: Create a subscription manifest by following the guidance at link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.4/htmlred_hat_ansible_automation_platform_operations_guide/assembly-aap-obtain-manifest-files#assembly-aap-obtain-manifest-files[Obtaining a manifest file]
193
+
. Optional: Create a subscription manifest by following the guidance at link:https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.4/htmlred_hat_ansible_automation_platform_operations_guide/assembly-aap-obtain-manifest-files#assembly-aap-obtain-manifest-files[Obtaining a manifest file].
205
194
206
-
.. Update your `agof_vault.yml` file with the path to downloaded manifest zip file. For example add the following:
195
+
.. Update your `agof_vault.yml` file with the path to the downloaded manifest zip file. For example add the following:
.Example agof_inventory file including AAP and Hub
345
335
346
-
In this method, you provide an existing Ansible Automation Platform (AAP) Controller endpoint, either on bare metal or in a private cloud, without needing AWS or pre-configured VMs.
336
+
[source,yaml]
337
+
----
338
+
[build_control]
339
+
localhost
340
+
341
+
[aap_controllers]
342
+
192.168.5.207
347
343
348
-
Specify
344
+
[automation_hub]
345
+
346
+
[eda_controllers]
347
+
348
+
[aap_controllers:vars]
349
+
350
+
[automation_hub:vars]
351
+
352
+
[all:vars]
353
+
ansible_user=myuser
354
+
ansible_ssh_pass=mypass
355
+
ansible_become_pass=mypass
356
+
ansible_remote_tmp=/tmp/.ansible
357
+
username=myuser
358
+
controller_hostname=192.168.5.207
359
+
----
349
360
350
-
manifest
351
-
endpoint hostname
352
-
admin credentials, and pass the installation process to a predefined `controller_config_dir`.
In this method, you provide an existing Ansible Automation Platform (AAP) Controller endpoint, either on bare metal or in a private cloud, without needing AWS or pre-configured VMs.
364
+
365
+
You supply the manifest contents, endpoint hostname, admin username (defaults to "admin"), and admin password, and then the installation hands off to a `controller_config_dir` you define.
354
366
367
+
* Run the following command to install using this method:
368
+
+
355
369
[source,terminal]
356
370
----
357
-
./pattern.sh make api_install
371
+
$ ./pattern.sh make api_install
358
372
----
359
373
360
374
=== Tearing down the installation
361
375
362
-
To tear down the installation run the following command:
363
-
376
+
* To tear down the installation run the following command:
== Understanding the Ansible GitOps Framework (AGOF) installation process
16
16
17
-
The Ansible GitOps Framework (AGOF) is a powerful solution designed to automate the deployment and configuration of Ansible Automation Platform (AAP) environments using GitOps principles. It leverages Ansible to manage infrastructure and application provisioning in a declarative, version-controlled way. AGOF provides a structured approach to setting up cloud infrastructure, installing AAP components, and handing over control to the AAP Controller for ongoing automation and management. An overview of the steps involved in configuring a basic demo minimal demo application are listed here:
17
+
The Ansible GitOps Framework (AGOF) is a powerful solution designed to automate the deployment and configuration of Ansible Automation Platform (AAP) environments using link:https://opengitops.dev/[GitOps principles]. It leverages Ansible to manage infrastructure and application provisioning in a declarative, version-controlled way. AGOF provides a structured approach to setting up cloud infrastructure, installing AAP components, and handing over control to the AAP Controller for ongoing automation and management. An overview of the steps involved in configuring a basic demo minimal demo application are listed here:
18
18
19
19
=== 1. Pre-Init Environment (Bootstrap Ansible)
20
20
@@ -28,8 +28,8 @@ The Ansible GitOps Framework (AGOF) is a powerful solution designed to automate
28
28
29
29
=== 3. Handover to Ansible Controller
30
30
31
-
* *Controller Setup*: The Ansible Automation Platform (AAP) Controller and optionally the Automation Hub are installed and configured. Entitlements are managed via a manifest, and execution environments and collections are downloaded and prepared.
32
-
* *GitOps Mode*: After configuration, AGOF transitions to GitOps mode. All environment changes are managed via Git commits to the repositories used by the controller, ensuring declarative and automated infrastructure management from this point onward.
31
+
* *Controller Setup*: The Ansible Automation Platform (AAP) Controller and optionally the Automation Hub are installed and configured. Entitlements are managed through a manifest, and execution environments and collections are downloaded and prepared.
32
+
* *GitOps Mode*: After configuration, AGOF transitions to GitOps mode. Git commits to the repositories by the controller manage all environment changes, ensuring declarative and automated infrastructure management from this point onward.
33
33
34
34
== Using the Controller Configuration collection
35
35
@@ -130,9 +130,13 @@ controller_launch_jobs:
130
130
organization: "{{ orgname_vault }}"
131
131
----
132
132
133
-
This file automates the creation, updating, or deletion of Ansible Controller objects (organizations, projects, inventories, credentials, templates, schedules). Sensitive information like passwords and keys are pulled dynamically from vaults, ensuring they are not hardcoded in the configuration. The project’s inventory and playbooks are managed through a Git repository, allowing for continuous integration and delivery (CI/CD) practices. Recurring playbook executions are scheduled automatically, eliminating the need for manual job triggers.
133
+
This file automates the creation, updating, or deletion of Ansible Controller objects (organizations, projects, inventories, credentials, templates, schedules). Sensitive information like passwords and keys are pulled dynamically from vaults, ensuring they are not hardcoded in the configuration.
134
134
135
-
== Key sections and parameters
135
+
A a Git repository manages the project’s inventory and playbooks, allowing for continuous integration and delivery (CI/CD) practices. AAP automatically schedules recurring playbook executions, eliminating the need for manual job triggers.
136
+
137
+
== Key sections and parameters
138
+
139
+
This section describes the parameters associated with the Ansible GitOps Framework minimal configuration demo.
0 commit comments