Skip to content

Execution Environment

An Ansible Execution Environment (EE) is used to run Ansible content against devices in my Homelab.

The EE is built using ansible-builder.

Execution Environment Files

Files relating to the Execution Environment are located in ansible/ee.

File Path Description
ansible/ee/execution-environment.yml Configuration file used by ansible-builder to create the EE.
ansible/ee/requirements.txt Extra Python dependencies to include in the EE.
ansible/ee/requirements.yml Ansible collection and roles to include in the EE.
ansible/ee/custom_entrypoint.sh Entrypoint script used to configure specific environments variables for the 1Password CLI and SSH agent socket.

Secrets

The 1Password CLI is installed in the EE to retrieve secrets for devices and services.

Automated Build

A GitHub Action is set up to automatically re-build the EE when changes are made to files in ansible/ee.

Using the Execution Environment

Ansible Navigator

ansible-navigator is used on my Macbook M1 Pro Max to run Ansible Content against devices in my Homelab. Under the hood ansible-navigator uses ansible-runner to interact with the container engine to launch the EE. I use OrbStack which has a compatible Docker engine.

ansible-navigator is configured using the ansible-navigator.yml file. I use specific configuration so that the EE can access the 1Password SSH Agent running on my Macbook to connect to devices. Furthermore, as mentioned above the EE has the 1Password CLI installed which is used by the community.general.onepassword lookup plugin to retrieve secrets from a 1Password vault.

AWX

The EE is used by my AWX instance to run Ansible Content against devices in my Homelab. See AWX for more information.