Technology Stack¶
This document provides an overview of the specific technologies and dependencies used in this project to build the default Ansible Execution Environment.
Core Technologies¶
- Ansible: The automation engine for which the execution environments are built.
- Python: The underlying language for Ansible and many of the required collections and modules.
- YAML: The language used for Ansible playbooks and configuration files.
- RHEL 9 UBI: The base operating system for the container image, provided by
registry.redhat.io/ansible-automation-platform-25/ee-minimal-rhel9:latest.
Build and Execution Tools¶
- ansible-builder: The primary tool for building execution environment container images, configured via
execution-environment.yml. - ansible-navigator: The recommended tool for running playbooks using the built execution environments, configured via
ansible-navigator.yml. - Podman: The default container runtime used to build and run the container images.
- Make: Used to orchestrate the build, test, and publish processes via the
Makefile.
Why these choices¶
- AAP base images provide certified content and security updates, reducing maintenance risk.
- Podman supports rootless containers and SELinux, aligning with hardened RHEL hosts.
ansible-builderencodes dependencies as code, improving reproducibility versus ad‑hoc Dockerfiles.makegives simple, discoverable workflows (make build test publish).
Ansible Collection Dependencies (files/requirements.yml)¶
redhat_cop.aap_utilitiesinfra.aap_configurationansible.platformansible.hubansible.controlleransible.edaamazon.awsazure.azcollectioncommunity.generalansible.utils
Python Package Dependencies (files/requirements.txt)¶
- ara: A reporting tool for Ansible Playbooks.
System-Level Dependencies (files/bindep.txt)¶
dnfgitjqrsyncunziptarsudolibcurl-develcurl-developenssl-developenldap-devel
Tool Versions¶
The exact versions of the tools used will depend on your build environment. You can check the installed versions with the following commands. This project was tested with the versions listed below.
- ansible-builder:
ansible-builder --version # Tested with: ansible-builder 3.0.1 - ansible-navigator:
ansible-navigator --version # Tested with: ansible-navigator 24.1.0 - podman:
podman --version # Tested with: podman version 4.4.1