EX294 Implement advanced Ansible automation Practice Question
An organization has a set of common tasks used in many playbooks. The tasks are updated frequently. What is the most maintainable way to share them?
⚠ Common exam trap
Red Hat often tests the misconception that local file paths or roles are sufficient for sharing tasks, but the EX294 exam emphasizes centralized, version-controlled distribution via Collections as the most maintainable approach for frequently updated shared content.
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
✓
Package the tasks into a collection and install it via ansible-galaxy.
Ansible Collections provide a centralized, versioned, and distributable way to package and share tasks, roles, modules, and plugins. Using `ansible-galaxy collection install` allows teams to manage updates from a single source (e.g., Automation Hub or a private Galaxy server), ensuring all playbooks use the latest version without manual file copying or path dependencies.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Create a role and store it in a local directory referenced by ansible.cfg.
Why it's wrong here
A local role path in ansible.cfg is machine-specific, so other controllers and CI runners cannot resolve the role without editing their own configuration. Local roles suit single-controller setups, whereas a version-controlled collection or repository shares updates reliably.
- ✗
Copy the task files into each project repository.
Why it's wrong here
Copying task files into each repository duplicates content, so every update must be applied manually across all projects, guaranteeing drift and missed changes. It is tempting because vendoring files gives each project a self-contained, version-pinned snapshot, which suits one-off or frozen deliverables — not frequently updated shared tasks.
- ✓
Package the tasks into a collection and install it via ansible-galaxy.
Why this is correct
Collections bundle roles, modules and plugins with versioning, so frequently updated shared tasks can be distributed and pinned via ansible-galaxy. This satisfies the maintainability constraint by centralising updates rather than duplicating task files across playbooks.
- ✗
Use include_tasks with a relative path from each playbook.
Why it's wrong here
include_tasks resolves relative to the including playbook, so every project keeps its own copy of the task file and frequent updates must be propagated manually. It suits one-off, project-local task lists that never need sharing.
Go deeper
Related to this question
About these practice questions
This EX294 question is part of Courseiva's 392-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
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.