No local guide to writing execution-environment.yml.
Possible I didn’t see what was right in front of my face here, just checking -
Is there a local guide to writing ansible-builder’s config file execution-environment.yml?
(As in a file on my machine provided by the package, not on a remote website)
I can’t find anything about the content of ansible-builder’s config file on my Fedora install. No man page, no commented example in /etc/ or /usr/share/doc/, no copy of Execution environment definition — Ansible Builder Documentation, and no pointers given by ansible-builder -h.
Have you tried checking your configuration settings for this? A few things that commonly cause this type of issue:
-
Check if there are any recent updates or changes to your setup that might have triggered this behavior.
-
Look at the logs for any error messages around the time this started happening. The specific error codes will point you to the root cause faster than guessing.
-
If you are self-hosting, make sure your environment variables and config files are properly set. Sometimes a missed setting after an upgrade causes exactly this kind of problem.
What version are you running, and did this start after a specific change?
@taylorbrooks your answer has nothing to do with the question. Did you maybe add it the wrong thread?
The ansible-builder package does not ship man pages or local documentation files on Fedora. This is a known gap - the tooling follows Python project conventions where docs live online rather than being bundled with the package.
A few workarounds for offline or local reference:
Check what files come with the package:
rpm -ql python3-ansible-builder | grep -i doc
This often returns nothing meaningful, but it confirms what is bundled.
For the execution-environment.yml schema, you can find it in the installed package source:
python3 -c “import ansible_builder, os; print(os.path.dirname(ansible_builder.file))”
Navigate to that directory and look for schema files or YAML examples under the v3/ subdirectory.
The example files from the upstream repository are the most comprehensive reference if you download them:
pip download ansible-builder --no-deps -d /tmp/ab_pkg
cd /tmp/ab_pkg && unzip *.whl -d ab_extracted
Inside you will find the package source including schema definitions and any bundled examples.
For reverse-engineering the format without internet access: run ansible-builder create with a minimal EE definition. It generates a Containerfile that documents which fields were interpreted and how they map to the container build steps.
Thanks for that.
Selecting bits from the schema file get me closer.
(This is from the ansible-builder-3.1.0-6.fc43.rpm package in the fedora repo, not python3-ansible-builder).
# grep -e '^schema' -e '^ "' /usr/lib/python3.14/site-packages/ansible_builder/ee_schema.py
schema_v1 = {
"version": {
"ansible_config": {
"build_arg_defaults": {
"dependencies": {
"additional_build_steps": {
schema_v2 = {
"version": {
"ansible_config": {
"build_arg_defaults": {
"dependencies": {
"additional_build_steps": {
"images": {
schema_v3 = {
"version": {
"build_arg_defaults": {
"dependencies": {
"images": {
"additional_build_steps": {
"additional_build_files": {
"options": {
#
Reverse-engineering ansible-builder create might be tricky.
# cat execution-environment.yml
---
version: 3
#
# ansible-builder create
WARNING:root:Using the outdated base image 'quay.io/ansible/ansible-runner:latest' might result in the build failures.
Complete! The build context can be found at: /root/ansible-builder/context
#
# cat context/Containerfile
ARG EE_BASE_IMAGE="quay.io/ansible/ansible-runner:latest"
ARG PYCMD="/usr/bin/python3"
ARG PKGMGR_PRESERVE_CACHE=""
...
#