EX374 Red Hat Certified Specialist In Developing Automation With Ansible Automation Pl Practice Questions
Prepare for EX374 with more than an answer.
- 1
You are creating a playbook that performs maintenance on a cluster of web servers. You want to ensure that if the maintenance task fails on more than 30% of the hosts in the first batch, the entire playbook execution aborts immediately to prevent widespread outage.
Which settings should you apply to the play definition?
Show answer details
Correct answer: A, B
The
max_fail_percentagesetting causes the play to abort if the percentage of failed hosts exceeds the threshold.To utilize
max_fail_percentageeffectively for batches, you must setserial. Ifserialis not set, Ansible runs on all hosts in parallel (up to forks), and max_fail_percentage applies to the whole set. To stop 'after the first batch', a batch size must be defined viaserial. - 2
Case Study:
Company Overview: TechGlobal is a large enterprise managing a hybrid cloud environment with 500+ servers.
Current Situation:
- They maintain a monolithic inventory file
hosts.inithat is becoming unmanageable. - Variables are scattered across the inventory file and playbook directories.
- They have a requirement to group servers by
datacenter(dc1, dc2) andapplication(web, db). - Sensitive data like DB passwords are currently in plain text in
group_vars.
Goal: Restructure the inventory to follow best practices for scalability and security.
Which directory structure and configuration best meets TechGlobal's needs?
Show answer details
Correct answer: A
This approach uses a directory-based layout for variables, which is a best practice for scaling. Splitting
group_varsinto directories allows for separating clear text variables and encrypted vault variables (e.g.,vars.ymlvsvault.yml) while Ansible automatically merges them. This addresses scalability and security. - They maintain a monolithic inventory file
- 3
You need to configure an Automation Controller Job Template to prompt the user for a specific release version (e.g., 'v1.0', 'v2.0') at runtime. The variable
release_versionshould be populated with this input.Which feature should you enable and configure on the Job Template?
Show answer details
Correct answer: A
Surveys in Automation Controller allow administrators to define a set of questions (prompts) that are presented to the user when a job is launched. The answers are captured as extra variables (e.g.,
release_version) passed to the playbook. - 4
True or False: When using the
ansible.builtin.include_rolemodule, variables defined in the role'sdefaults/main.ymlwill override variables passed explicitly to the module using thevars:keyword.Show answer details
Correct answer: B
False. Role defaults (
defaults/main.yml) have the lowest precedence. Variables passed directly to the role (e.g., viavarsunderinclude_roleorimport_role) have a much higher precedence and will override the defaults. - 5
You are the Senior Automation Architect for a financial institution. You are designing a complex Automation Controller workflow to patch Linux servers. The workflow must adhere to the following logic:
- Step A: Check current system load.
- Step B: If Step A succeeds, proceed to patch the system.
- Step C: If Step A fails (load too high), create a ticket in the ITSM system.
- Step D: Regardless of whether the system was patched or a ticket was created, send a final notification to the operations team.
Which workflow configuration best achieves this logic?
Show answer details
Correct answer: A
In Ansible Automation Controller workflows, transitions determine the flow based on the result of the previous node. An 'Always' transition ensures that the target node executes regardless of the source node's status (success or failure). By linking both the success path (Step B) and failure path (Step C) to Step D with 'Always', you guarantee the notification runs in both scenarios.
graph TD A[Step A: Check Load] -->|Success| B[Step B: Patch] A -->|Failure| C[Step C: Ticket] B -->|Always| D[Step D: Notify] C -->|Always| D - 6
You are building a custom Execution Environment (EE) using
ansible-builderversion 3. You have a requirement to install a specific binary package,libxml2-dev, at the operating system level, and a Python library,lxml, via pip.Which file should you create to define the OS-level dependencies, and how is it referenced in the
execution-environment.yml?Show answer details
Correct answer: B
Ansible Builder uses
bindep.txtto define system-level (RPM/Deb) dependencies. In theexecution-environment.ymldefinition file, this is referenced under thedependenciessection using thesystemkey. Python dependencies go inrequirements.txtreferenced by thepythonkey.
