Courseiva

EX294 Practice Question: Create content collections and execution environments

Your organization uses Ansible Automation Platform 2.2 with private Automation Hub. You have developed a custom collection named 'my_company.network' that depends on 'cisco.ios' and 'vyos.vyos'. The collection is published in your private hub. You are building an execution environment using ansible-builder. The execution-environment.yml specifies 'EE_BASE_IMAGE: registry.redhat.io/ansible-automation-platform-22/ee-supported-rhel8:latest'. The dependencies section points to a requirements.yml file that includes your collection. When you run 'ansible-builder build', the build succeeds, but when running a playbook that uses modules from 'cisco.ios', you get an error 'module not found'. What is the most likely reason and the correct action to resolve it?

⚠ Common exam trap

Watch out — candidates often assume collection dependencies declared in metadata are automatically resolved during the execution environment build, but ansible-builder only installs collections explicitly listed in requirements.yml, not their transitive dependencies.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Add 'cisco.ios' to the requirements.yml file used during the execution environment build

The execution environment build process uses the requirements.yml file to determine which collections to include in the image. If the custom collection 'my_company.network' depends on 'cisco.ios', but that dependency is not explicitly listed in the requirements.yml, the builder will not include 'cisco.ios' in the execution environment. Adding 'cisco.ios' to the requirements.yml ensures it is installed during the build, making the module available at runtime.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Reinstall the collection on the controller node using 'ansible-galaxy collection install'

    Why it's wrong here

    Installing the collection on the controller does not place cisco.ios inside the execution environment image, so the playbook still fails at runtime. It is tempting because ansible-galaxy install resolves dependencies locally, and it would be correct for running playbooks directly on the controller rather than inside a built execution environment.

  • ✗

    Use a different base image that includes 'cisco.ios'

    Why it's wrong here

    The ee-supported-rhel8 base image already bundles many collections, but cisco.ios must be installed via the requirements file or a builder step; swapping base images does not guarantee inclusion and abandons the supported image. A custom base image is chosen when you need OS-level packages absent from supported images, not to add collections.

  • ✗

    Update the collection metadata to include dependencies and rebuild

    Why it's wrong here

    The collection's own galaxy.yml dependencies are honoured only when ansible-builder resolves them from a configured source; with a private Automation Hub, cisco.ios is not pulled unless listed in requirements.yml or an ansible.cfg server is supplied. Metadata editing is used when publishing a collection, not when building an execution environment.

  • ✓

    Add 'cisco.ios' to the requirements.yml file used during the execution environment build

    Why this is correct

    Adding `cisco.ios` to the build-time `requirements.yml` lets ansible-builder resolve and install the transitive dependency into the execution environment image, satisfying the constraint that the module must exist inside the container. Private Automation Hub must host it, since the build pulls collections from configured sources.

Visual reference

Client Recursive Resolver Root DNS (13 root servers) TLD DNS (.com, .org, …) Authoritative example.com query IP addr answer

About these practice questions

Courseiva writes every EX294 question from scratch — 392 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This EX294 practice question is part of Courseiva's free Red Hat certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the EX294 exam.