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.
-
Create a
execution-environment.yml
file that specifies dependencies to include in the image.cat > execution-environment.yml<<EOF version: 3 images: base_image: name: quay.io/fedora/fedora:latest dependencies: ansible_core: package_pip: ansible-core ansible_runner: package_pip: ansible-runner system: - openssh-clients - sshpass galaxy: collections: - name: community.postgresql EOF
The
psycopg2-binary
Python package is included in therequirements.txt
file for the collection. For collections that do not includerequirements.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. -
List container images to verify that you built it successfully.
You can verify the image you created by inspecting the Containerfile
or Dockerfile
in the context
directory to view its configuration.
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 in the Ansible community forum explains how to set up a local registry for your Execution Environment images.