- A
Using 'include_vars' to reuse variable files.
Why wrong: Incorrect. include_vars only loads variable files; it does not encapsulate the task logic for checking, starting, and verifying a service.
- B
Using a role with multiple tasks and handlers.
Correct. A role groups tasks, handlers, and variables into a reusable structure. Handlers can start services only when notified, effectively reducing repetition.
- C
Using 'debug' module to output the status.
Why wrong: Incorrect. The debug module prints messages but does not encapsulate the control flow or state-checking logic.
- D
Creating a custom filter plugin to encapsulate the logic.
Why wrong: Incorrect. Custom filter plugins are meant for transforming data in Jinja2 templates, not for defining reusable task sequences or conditionally executing tasks.
- E
Using 'include_tasks' with a loop to include a common task file.
Correct. include_tasks with a loop allows you to include a common task file for multiple services, eliminating redundancy across plays.
EX294 Roles Practice Question
This EX294 practice question tests your understanding of implement advanced ansible automation. Read the scenario carefully and evaluate each option against the stated constraints before committing to an answer. A key principle to apply: roles. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
An Ansible playbook repeatedly uses the same pattern: check if a service is running, if not start it, and then verify it's running. Which three Ansible features can be used to reduce code duplication? (Choose three.)
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
Using a role with multiple tasks and handlers.
Options B and E are correct because roles (with tasks and handlers) and include_tasks with loops are the proper mechanisms for reusing task patterns in Ansible. Option D is incorrect: custom filter plugins are used for data transformation in templates, not for encapsulating task execution logic. include_vars (A) only reuses variables, and debug (C) only outputs messages; neither reduces code duplication for the described check-start-verify pattern.
Key principle: Roles
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Using 'include_vars' to reuse variable files.
Why it's wrong here
Incorrect. include_vars only loads variable files; it does not encapsulate the task logic for checking, starting, and verifying a service.
- ✓
Using a role with multiple tasks and handlers.
Why this is correct
Correct. A role groups tasks, handlers, and variables into a reusable structure. Handlers can start services only when notified, effectively reducing repetition.
Related concept
Roles
- ✗
Using 'debug' module to output the status.
Why it's wrong here
Incorrect. The debug module prints messages but does not encapsulate the control flow or state-checking logic.
- ✗
Creating a custom filter plugin to encapsulate the logic.
Why it's wrong here
Incorrect. Custom filter plugins are meant for transforming data in Jinja2 templates, not for defining reusable task sequences or conditionally executing tasks.
- ✓
Using 'include_tasks' with a loop to include a common task file.
Why this is correct
Correct. include_tasks with a loop allows you to include a common task file for multiple services, eliminating redundancy across plays.
Related concept
Roles
Common exam traps
Common exam trap: answer the scenario, not the keyword
The trap is that candidates may consider custom plugins or filters (like filter plugins) as a way to encapsulate task logic, but in Ansible, only roles, task includes, and imports are designed for reusing task execution patterns. Filter plugins are exclusively for template data manipulation.
Detailed technical explanation
How to think about this question
Roles leverage Ansible's directory structure (tasks, handlers, defaults, vars, etc.) to promote modularity. Handlers are special tasks that run only when notified by other tasks via the 'notify' directive, making them ideal for idempotent service management. In real-world scenarios, using roles with handlers ensures that service restarts occur only when configuration changes, reducing unnecessary downtime and playbook execution time.
KKey Concepts to Remember
- Roles
- include_tasks
- Handlers
TExam Day Tips
- Watch for words such as best, first, most likely and least administrative effort.
- Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Roles
Real-world example
How this comes up in practice
A practitioner preparing for the EX294 exam encounters this exact type of scenario on the job. The correct answer here is not the most general option — it is the best answer for the specific constraint described. Roles Real exam questions reward reading the full scenario before eliminating options, because the constraint defines which answer fits.
What to study next
Got this wrong? Here's your next step.
Review roles, then practise related EX294 questions on the same topic to reinforce the concept.
- →
Implement advanced Ansible automation — study guide chapter
Learn the concepts, then practise the questions
- →
Implement advanced Ansible automation practice questions
Targeted practice on this topic area only
- →
All EX294 questions
528 questions across all exam domains
- →
Red Hat Certified Engineer EX294 study guide
Full concept coverage aligned to exam objectives
- →
EX294 practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related EX294 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Deploy Ansible Automation Platform practice questions
Practise EX294 questions linked to Deploy Ansible Automation Platform.
Manage inventories and credentials practice questions
Practise EX294 questions linked to Manage inventories and credentials.
Manage task execution and roles practice questions
Practise EX294 questions linked to Manage task execution and roles.
Coordinate rolling updates practice questions
Practise EX294 questions linked to Coordinate rolling updates.
Transform data with filters and plugins practice questions
Practise EX294 questions linked to Transform data with filters and plugins.
Create content collections and execution environments practice questions
Practise EX294 questions linked to Create content collections and execution environments.
Implement advanced Ansible automation practice questions
Practise EX294 questions linked to Implement advanced Ansible automation.
Manage automation security and operations practice questions
Practise EX294 questions linked to Manage automation security and operations.
EX294 fundamentals practice questions
Practise EX294 questions linked to EX294 fundamentals.
EX294 scenario practice questions
Practise EX294 questions linked to EX294 scenario.
EX294 troubleshooting practice questions
Practise EX294 questions linked to EX294 troubleshooting.
Practice this exam
Start a free EX294 practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this EX294 question test?
Implement advanced Ansible automation — This question tests Implement advanced Ansible automation — Roles.
What is the correct answer to this question?
The correct answer is: Using a role with multiple tasks and handlers. — Options B and E are correct because roles (with tasks and handlers) and include_tasks with loops are the proper mechanisms for reusing task patterns in Ansible. Option D is incorrect: custom filter plugins are used for data transformation in templates, not for encapsulating task execution logic. include_vars (A) only reuses variables, and debug (C) only outputs messages; neither reduces code duplication for the described check-start-verify pattern.
What should I do if I get this EX294 question wrong?
Review roles, then practise related EX294 questions on the same topic to reinforce the concept.
What is the key concept behind this question?
Roles
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
Keep practising
More EX294 practice questions
- A systems administrator is securing Ansible automation. Which two practices help protect sensitive data in playbooks? (C…
- A workflow template in automation controller consists of three job templates that must run sequentially with different c…
- Refer to the exhibit. A playbook fails with the given error. What is the most likely cause?
- An Ansible automation team is designing a playbook to manage network devices. They need to ensure that the playbook can…
- A systems administrator needs to run a playbook that applies configuration changes to a set of servers. They want to ens…
- An organization requires that all Ansible playbooks be executed using a specific service account that has limited permis…
Last reviewed: Jul 4, 2026
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.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.