Working on the Ansible Automation Platform course has had some minor issues when we try to cover topics like filtering dynamic inventories, and other issues the developers have had with it when Ansible Tower changed to automation controller. But with 75% of the course done we decided to move to AAP2.2 which was recently released. This made me excited because the current task I hold is Chapter 8 sections 5 and 6 in the Red Hat "Filtering Hosts with Smart Inventories" book and classroom. The filtering of dynamic inventories is simple and straightforward in Ansible Tower But buggy in this release of the controller.
Of course, we also decided to drop all of chapter 7 IdM integration so I guess I am working on Chapter 7 now since the chapters have all changed.
Updating was as simple as downloading the new bundle from the internet and editing the inventory file. Modify the inventory file to specify:
- The three servers to install.
- The passwords for the administrator account in each server.
- The container registry for the automation controller server.
- The variables related to the database.
The variables related to the certificates.
I also delete some repositories from the automation hub and all the EE's [Execution Environments] from the controller. I would hate for the setup to fail if I referenced anything from an old repo. (i.e. aap2.1)
You run the installation script as the root user. I executed the setup.sh installation script.
./setup.sh -e ignore_preflight_errors=true
NOTE:
Because my lab environment does not satisfy the minimum memory requirement
for the automation controller and the private automation hub servers, I set
the ignore_preflight_errors
additional Ansible variable to true to ignore
preflight checks. This should not be set in a production environment.
Since I deleted the old 4.1 EE's I needed to replace them. I then upload namespaced EEs to the private automation hub.
This example uses a loop with the skopeo copy command to upload archive files to private automation hub. Although the semicolons are not needed, the line continuation character in the skopoeo copy command is needed.
for I in ee-{29,minimal,supported}-rhel8;
> do
> skopeo copy docker-archive:///home/student/certified-EEs/${I}.tar \
> docker://hub.lab.example.com/ansible-automation-platform-21/${I}:latest;
> done
...output omitted...
Alternatively, assuming that you logged in to the private automation hub with the podman login command, you can upload an archive with the following commands. When not specified, the container images default to using the latest tag.
podman load -i ee-supported-rhel8.tar
podman tag \ registry.redhat.io/ansible-automation-platform-22/ee-supported-rhel8 \ hub.lab.example.com/ansible-automation-platform-22/ee-supported-rhel8
podman push \ hub.lab.example.com/ansible-automation-platform-22/ee-supported-rhel8
After all that was completed, I went to my controller hub and logged in to the controller with the username and password I updated in my inventory
file.