Chapter 5. Publishing an automation execution environment
Publish and customize your execution environment images. This procedure guides users in adding custom content, such as a collection, to an existing execution environment image like ee-minimal.
5.1. Customizing an existing automation execution environments image Copy linkLink copied to clipboard!
Ansible Controller includes the following default execution environments:
Minimal-ansible-automation-platform-25Includes the latest Ansible-core 2.16 release along with Ansible Runner, but does not include collections or other content. Ansible-automation-platform-24 Includes the Ansible-core 2.15 release along with Ansible Runner, but does not include collections or other content.While supported execution environments cover many automation prerequisites, minimal execution-environments are the recommended basis for your own custom images, to keep full control over dependencies and their versions.
-
EE Supported- Minimal, plus all Red Hat-supported collections and dependencies
While these environments cover many automation use cases, you can add additional items to customize these containers for your specific needs. The following procedure adds the kubernetes.core collection to the ee-minimal default image:
Procedure
Log in to
registry.redhat.iousing Podman:podman login -u="[username]" -p="[token/hash]" registry.redhat.io
$ podman login -u="[username]" -p="[token/hash]" registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ensure that you can pull the required automation execution environment base image:
podman pull registry.redhat.io/ansible-automation-platform-24/ee-minimal-rhel8:latest
podman pull registry.redhat.io/ansible-automation-platform-24/ee-minimal-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow Configure your Ansible Builder files to specify the required base image and any additional content to add to the new execution environment image.
For example, to add the Kubernetes Core Collection from Galaxy to the image, use the Galaxy entry:
collections: - kubernetes.core
collections: - kubernetes.coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow - For more information about definition files and their content, see the Breakdown of definition file content section.
In the execution environment definition file, specify the original
ee-minimalcontainer’s URL and tag in theEE_BASE_IMAGEfield. In doing so, your finalexecution-environment.ymlfile appears similar to the following:Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteSince this example uses the community version of
kubernetes.coreand not a certified collection from automation hub, we do not need to create anansible.cfgfile or reference that in our definition file.Build the new execution environment image by using the following command:
ansible-builder build -t [username]/new-ee
$ ansible-builder build -t [username]/new-eeCopy to Clipboard Copied! Toggle word wrap Toggle overflow where
[username]specifies your username, andnew-eespecifies the name of your new container image.NoteIf you do not use
-twithbuild, an image calledansible-execution-envis created and loaded into the local container registry.Use the
podman imagescommand to confirm that your new container image is in that list:The following shows the output of a 'podman images' command with the image
new-ee.REPOSITORY TAG IMAGE ID CREATED SIZE localhost/new-ee latest f5509587efbb 3 minutes ago 769 MB
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/new-ee latest f5509587efbb 3 minutes ago 769 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verify that the collection is installed:
podman run [username]/new-ee ansible-doc -l kubernetes.core
$ podman run [username]/new-ee ansible-doc -l kubernetes.coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow Tag the image for use in your automation hub:
podman tag [username]/new-ee [automation-hub-IP-address]/[username]/new-ee
$ podman tag [username]/new-ee [automation-hub-IP-address]/[username]/new-eeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Log in to your automation hub using Podman:
NoteYou must have
adminor appropriate container repository permissions for automation hub to push a container. For more information, see Manage containers in private automation hub.podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address]
$ podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Push your image to the container registry in automation hub:
podman push [automation-hub-IP-address]/[username]/new-ee
$ podman push [automation-hub-IP-address]/[username]/new-eeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pull your new image into your automation controller instance:
- Go to automation controller.
-
From the navigation panel, select
. - Click .
Enter the appropriate information then click to pull in the new image.
NoteIf your instance of automation hub is password or token protected, ensure that you have the appropriate container registry credential set up.