Building your first Execution Environment
We are going to build an EE that represents an Ansible control node containing standard packages such as ansible-core
and Python in addition to an Ansible collection (community.postgresql
) and its dependency (the psycopg2-binary
Python connector).
To build your first EE:
Create a project folder on your filesystem.
mkdir my_first_ee && cd my_first_ee
Create a
execution-environment.yml
file that specifies dependencies to include in the image.version: 3 images: base_image: name: quay.io/fedora/fedora:39 dependencies: ansible_core: package_pip: ansible-core ansible_runner: package_pip: ansible-runner system: - openssh-clients - sshpass galaxy: collections: - name: community.postgresql
Note
The psycopg2-binary Python package is included in the requirements.txt file for the collection. For collections that do not include requirements.txt files, you need to specify Python dependencies explicitly. See the Ansible Builder documentation for details.
Build a EE container image called
postgresql_ee
.If you use docker, add the
--container-runtime docker
argument.ansible-builder build --tag postgresql_ee
List container images to verify that you built it successfully.
podman image list localhost/postgresql_ee latest 2e866777269b 6 minutes ago 1.11 GB
You can verify the image you created by inspecting the Containerfile
or Dockerfile
in the context
directory to view its configuration.
less context/Containerfile
You can also use Ansible Navigator to view detailed information about the image.
Run the ansible-navigator command, type :images
in the TUI, and then choose postgresql_ee
.
Proceed to Running your EE and test the EE you just built.
See also
- Running a local container registry for Execution Environments
This guide in the Ansible community forum explains how to set up a local registry for your Execution Environment images.