Chapter 4. Publishing an automation execution environment 4.1. Customizing an existing automation execution environments image Ansible Controller includes the following default execution environments: Minimal - Includes the latest Ansible-core 2.15 release along with Ansible Runner, but does not include collections or other content 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.io via Podman: USD podman login -u="[username]" -p="[token/hash]" registry.redhat.io 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 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 For more information about definition files and their content, see the definition file breakdown section . In the execution environment definition file, specify the original ee-minimal container's URL and tag in the EE_BASE_IMAGE field. In doing so, your final execution-environment.yml file will look like the following: Example 4.1. A customized execution-environment.yml file version: 3 images: base_image: 'registry.redhat.io/ansible-automation-platform-24/ee-minimal-rhel9:latest' dependencies: galaxy: collections: - kubernetes.core Note Since this example uses the community version of kubernetes.core and not a certified collection from automation hub, we do not need to create an ansible.cfg file or reference that in our definition file. Build the new execution environment image by using the following command: USD ansible-builder build -t [username] / new-ee where [username] specifies your username, and new-ee specifies the name of your new container image. Note If you do not use -t with build , an image called ansible-execution-env is created and loaded into the local container registry. Use the podman images command to confirm that your new container image is in that list: Example 4.2. 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 Verify that the collection is installed: USD podman run [username]/new-ee ansible-doc -l kubernetes.core Tag the image for use in your automation hub: USD podman tag [username]/new-ee [automation-hub-IP-address]/[username]/new-ee Log in to your automation hub using Podman: Note You must have admin or appropriate container repository permissions for automation hub to push a container. For more information, see the Manage containers in private automation hub section in Managing content in automation hub . USD podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address] Push your image to the container registry in automation hub: USD podman push [automation-hub-IP-address]/[username]/new-ee Pull your new image into your automation controller instance: Go to automation controller. From the navigation panel, select Administration Execution Environments . Click Add . Enter the appropriate information then click Save to pull in the new image. Note If your instance of automation hub is password or token protected, ensure that you have the appropriate container registry credential set up. 4.2. Additional resources (or steps) For more details on customizing execution environments based on common scenarios, see the following topics in the Ansible Builder Documentation : Copying arbitratory files to an execution enviornment Building execution environments with environment variables Building execution environments with environment variables and ansible.cfg

Commands:
podman login -u="[username]" -p="[token/hash]" registry.redhat.io
pull registry.redhat.io/ansible-automation-platform-24/ee-minimal-rhel8:latest
collections: - kubernetes.core
version: 3 images: base_image: 'registry.redhat.io/ansible-automation-platform-24/ee-minimal-rhel9:latest' dependencies: galaxy: collections: - kubernetes.core
ansible-builder build -t [username] / new-ee
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/new-ee latest f5509587efbb 3 minutes ago 769 MB
podman run [username]/new-ee ansible-doc -l kubernetes.core
podman tag [username]/new-ee [automation-hub-IP-address]/[username]/new-ee
podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address]
podman push [automation-hub-IP-address]/[username]/new-ee