Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 4. Building off of existing base EEs provided by Red Hat Ansible Automation Platform
4.1. Gathering system-level dependencies Link kopierenLink in die Zwischenablage kopiert!
The bindep
format provides a way of specifying cross-platform requirements. A minimum expectation is that the collection(s) specify necessary requirements for [platform:rpm]
.
Below is an example of content from a valid bindep.txt
file:
Example 4.1. A bindep.txt
file
python38-devel [platform:rpm compile] subversion [platform:rpm] git-lfs [platform:rpm]
python38-devel [platform:rpm compile]
subversion [platform:rpm]
git-lfs [platform:rpm]
Entries from multiple collections will be combined into a single file. This will be processed by bindep
and then passed to dnf
. Only requirements with no profiles or no runtime requirements will be installed to the image.
4.2. Note for pip-based requirements Link kopierenLink in die Zwischenablage kopiert!
Python requirements files are combined into a single file using the requirements-parser
library in order to support complex syntax. Entries from separate collections that give the same package name will be combined into the same entry, with the constraints combined.
There are several package names which are specifically ignored by ansible-builder
; if a collection lists these, they will not be included in the combined file. These include test packages and packages that provide Ansible itself.
The full list can be found in EXCLUDE_REQUIREMENTS
in the ansible_builder.requirements.py module.
4.3. Customizing an existing execution environment image Link kopierenLink in die Zwischenablage kopiert!
Ansible Controller ships with three default execution environments:
-
Ansible 2.9
- no collections are installed other than Controller modules -
Minimal
- contains the latest Ansible 2.11 release along with Ansible Runner, but contains no collections or other additional content -
EE Supported
- contains all Red Hat-supported content
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
quay.io
via Podman:podman login -u="[username]" -p="[token/hash]" quay.io
$ podman login -u="[username]" -p="[token/hash]" quay.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that you have access to pull the base image that you want to use.
-
For example, to pull a
ee-minimal
image, check that you have access to this repository.
-
For example, to pull a
Configure your Ansible Builder files to specify any additional content to add to the new execution environment image which is based off of
ee-minimal
.For example, to add the Kubernetes Core Collection from Galaxy to the image, fill out the
requirements.yml
file as such:--- collections: - kubernetes.core
--- collections: - kubernetes.core
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - For more information on definition files and their content, refer to to definition file breakdown section.
In the execution environment definition file, specify the filepath to the original
ee-minimal
container via theEE_BASE_IMAGE
field. In doing so, your finalexecution-environment.yml
file will look like the following:Example 4.2. A customized
execution-environment.yml
fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteSince this example uses the community version of
kubernetes.core
and not a certified collection from automation hub, we do not need to create anansible.cfg
nor reference that in our definition file.Build the new execution environment image using the following command:
ansible-builder build -t quay.io/[username]/new-ee
$ ansible-builder build -t quay.io/[username]/new-ee
Copy to Clipboard Copied! Toggle word wrap Toggle overflow where
[username]
specifies your username, andnew-ee
specifies the name of your new container image.Use the
podman images
command to confirm that your new container image is in that list:Example 4.3. Output of a
podman images
command with the imagenew-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 MB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Verify your newly-created execution environment image via Ansible Navigator
Push your image to the container registry automation hub:
podman push quay.io/[username]/new-ee
$ podman push quay.io/[username]/new-ee
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pull your new image into your automation controller instance:
- Navigate to automation controller
- From the side-navigational bar, click Administration > Execution Environments.
- Click Add.
Enter the appropriate information then hit Save 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.