Courseiva
Knowledge + Practice
CertificationsVendorsCareer RoadmapsLabs & ToolsStudy GuidesGlossaryPractice Questions
C
Courseiva

Free IT certification practice questions with explained answers for CCNA, CompTIA, AWS, Azure, Google Cloud, and more.

Certification Practice Questions

CCNA practice questionsSecurity+ SY0-701 practice questionsAWS SAA-C03 practice questionsAZ-104 practice questionsAZ-900 practice questionsCLF-C02 practice questionsA+ Core 1 practice questionsGoogle Cloud ACE practice questionsCySA+ CS0-003 practice questionsNetwork+ N10-009 practice questions
View all certifications →

Product

CertificationsCertification PathsExam TopicsPractice TestsExam Dumps vs Practice TestsStudy HubComparisons

Company

AboutContactEditorial PolicyQuestion Writing PolicyTrust Center

Legal

Privacy PolicyTerms of Service

Courseiva is a free IT certification practice platform offering original exam-style practice questions, detailed explanations, topic-based practice, mock exams, readiness tracking, and study analytics for Cisco, CompTIA, Microsoft, AWS, and other technology certifications.

© 2026 Courseiva. Courseiva is operated by JTNetSolutions Ltd. All rights reserved.

Courseiva is an independent certification practice platform and is not affiliated with, endorsed by, or sponsored by Cisco, Microsoft, AWS, CompTIA, Google, ISC2, ISACA, or any other certification vendor. Vendor names and certification marks are used only to identify the exams learners are preparing for.

← Transform data with filters and plugins practice sets

EX294 Transform data with filters and plugins • Complete Question Bank

EX294 Transform data with filters and plugins — All Questions With Answers

Complete EX294 Transform data with filters and plugins question bank — all 0 questions with answers and detailed explanations.

72
Questions
Free
No signup
Certifications/EX294/Practice Test/Transform data with filters and plugins/All Questions
Question 1easymultiple choice
Read the full Ansible explanation →

An Ansible playbook needs to extract the first line from a multi-line string variable 'output' and store it in a new variable 'first_line'. Which filter should be used?

Question 2mediummultiple choice
Read the full Ansible explanation →

A playbook uses the 'uri' module to query an API and registers the result. The API returns a JSON with a nested field 'data.users[0].name'. Which expression correctly extracts that name?

Question 3hardmultiple choice
Read the full Ansible explanation →

A team is migrating from static inventory to dynamic inventory using a custom script. The script returns JSON with a group 'webservers' containing hosts. However, the playbook targeting 'webservers' fails with 'no hosts matched'. Which filter or plugin issue is most likely?

Question 4easymultiple choice
Read the full Ansible explanation →

A playbook needs to set a fact 'total_memory' by summing the 'memory_mb' values from a list of servers. Which filter should be used?

Question 5mediummultiple choice
Read the full Ansible explanation →

A playbook uses the 'debug' module to print a variable 'myvar' which is a list of dictionaries. The output shows 'VARIABLE IS UNDEFINED' despite the variable being defined earlier. Which filter issue is most likely?

Question 6mediummulti select
Read the full Ansible explanation →

Which TWO filters are used to transform data types in Ansible?

Question 7hardmulti select
Read the full Ansible explanation →

Which THREE plugins are used for data transformation in Ansible?

Question 8mediummultiple choice
Read the full Ansible explanation →

The playbook uses the community.general.parse_csv filter. Assuming the collection is installed, what is the type and structure of the 'parsed' variable?

Exhibit

Refer to the exhibit.

- name: Parse CSV
  hosts: localhost
  vars:
    csv_data: "name,age\nAlice,30\nBob,25"
  tasks:
    - name: Convert to list of dicts
      set_fact:
        parsed: "{{ csv_data | community.general.parse_csv }}"

    - debug:
        var: parsed
Question 9hardmultiple choice
Read the full Transform data with filters and plugins explanation →

The debug output shows 'changed' even when the firewall rule already existed. Which filter issue could cause this?

Exhibit

Refer to the exhibit.

- name: Configure firewall
  hosts: all
  tasks:
    - name: Allow HTTP
      ansible.posix.firewalld:
        service: http
        permanent: yes
        state: enabled
      register: fw_result

    - debug:
        msg: "{{ 'changed' if fw_result.changed else 'no change' }}"
Question 10hardmultiple choice
Read the full Ansible explanation →

Your organization manages a fleet of 500 web servers running RHEL 8. Each server has a custom fact file /etc/ansible/facts.d/web.fact containing:

[web]

docroot=/var/www/html port=80 admin=admin@example.com

You have a playbook that needs to configure the firewall to allow traffic on the port defined in the custom fact for each server. The playbook uses the 'ansible_local' variable to access these facts. However, some servers have the custom fact file missing or malformed. The task to open the firewall port fails on those servers with 'VARIABLE IS UNDEFINED'. You need to implement a solution that handles missing custom facts gracefully, setting a default port of 8080 if the fact is not defined, and still log a warning. Which approach should you take?

Question 11easymultiple choice
Read the full Ansible explanation →

An Ansible playbook needs to generate a list of IP addresses from a range 192.168.1.10 to 192.168.1.20. Which filter should be used in a Jinja2 template?

Question 12mediummultiple choice
Read the full Ansible explanation →

A playbook uses the 'debug' module to print a variable 'my_var' but the output is 'VARIABLE IS UNDEFINED'. The variable is defined in group_vars/all.yml. Which filter could be used to provide a default value and avoid this error?

Question 13hardmulti select
Read the full Ansible explanation →

An Ansible playbook retrieves a list of dictionaries from an API. Each dictionary has keys 'name', 'status', and 'zone'. The playbook needs to filter out entries where 'status' is 'inactive' and then extract only the 'name' values. Which THREE of the following combinations of filters and loops would achieve this?

Question 14hardmultiple choice
Read the full Ansible explanation →

You are maintaining an Ansible automation for a large Red Hat Enterprise Linux deployment. The playbook configures NTP servers on all managed nodes. It uses a variable 'ntp_servers' defined in group_vars/all.yml as a list: ['0.rhel.pool.ntp.org', '1.rhel.pool.ntp.org', '2.rhel.pool.ntp.org']. The playbook task uses the 'uri' module to test connectivity to each server, but only if the server is reachable. The task currently uses:

``` - name: Test NTP server reachability uri: url: "http://{{ item }}:123" timeout: 5 register: result loop: "{{ ntp_servers }}" until: result.status == 200 retries: 3 delay: 2 ```

However, the playbook fails because the NTP servers do not respond to HTTP on port 123. You need to change the approach to test ICMP reachability using the 'ping' module, but the 'ping' module does not support a custom destination port. You also want to continue using a loop and register the success/failure per server. Which of the following is the best course of action?

Question 15hardmulti select
Read the full Ansible explanation →

When using the 'uri' module to interact with a REST API in Ansible, which TWO of the following statements about error handling and response parsing are correct?

Question 16easymultiple choice
Read the full Ansible explanation →

Refer to the exhibit. After running the playbook, the 'content' field contains an HTML page. The team wants to extract the text inside the <h1> tags using Ansible filters. Which of the following tasks correctly extracts the content of the <h1> element?

Exhibit

Refer to the exhibit.

```
- name: Check Apache status
  hosts: webservers
  tasks:
    - name: Get URL content
      uri:
        url: http://localhost/server-status
        return_content: yes
      register: result

    - name: Debug output
      debug:
        var: result
```

Output:
```
ok: [web01] => {
    "result": {
        "changed": false,
        "content": "<html><body><h1>Apache Status</h1>...</body></html>",
        "status": 200,
        "url": "http://localhost/server-status"
    }
}
```
Question 17mediummultiple choice
Read the full Ansible explanation →

You are managing a fleet of 200 RHEL 8 servers with Ansible Tower. A playbook uses the 'seboolean' module to enable httpd_can_network_connect for a web application. Recently, the playbook has been failing on 10 servers with the error: 'Failed to set SELinux boolean: Unable to communicate with SELinux policy'. Other servers succeed. The playbook runs as the 'ansible' user with passwordless sudo. The failing servers have identical SELinux configuration (enforcing mode, targeted policy) and the same package versions as working servers. You suspect the issue is related to the 'python3-libselinux' package. Which of the following is the most likely cause and the correct fix?

Question 18mediumdrag order
Read the full Transform data with filters and plugins explanation →

Drag and drop the steps to set up a cron job that runs a script every day at 2 AM in the correct order.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4
5Step 5
Question 19mediummatching
Read the full Transform data with filters and plugins explanation →

Match each SELinux context component to its meaning.

Drag a concept onto its matching description — or click a concept then click the description.

Concepts
Matches

SELinux user identity

Role-based access control

Type enforcement (most common)

MLS sensitivity level

MLS/MCS category range

Question 20easymultiple choice
Read the full Ansible explanation →

A playbook uses `{{ my_var | default('fallback') }}`. What is the effect?

Question 21easymultiple choice
Read the full Transform data with filters and plugins explanation →

Which filter converts a string like 'hello' into a list of characters ['h','e','l','l','o']?

Question 22easymultiple choice
Read the full Ansible explanation →

What does the `| quote` filter do in an Ansible task?

Question 23mediummultiple choice
Read the full Transform data with filters and plugins explanation →

You have a list `my_list` containing `[0, 1, 2, '', 'hello']`. You want to extract the first truthy element that exists. Which chain achieves this?

Question 24mediummultiple choice
Read the full Transform data with filters and plugins explanation →

Consider the task: `- debug: msg={{ item | upper }}` with `loop: "{{ ['a','b'] }}"`. What will be the output?

Question 25mediummultiple choice
Read the full Transform data with filters and plugins explanation →

Which lookup plugin is used to retrieve values from an AWS SSM Parameter Store?

Question 26hardmultiple choice
Read the full Transform data with filters and plugins explanation →

Given `{{ ['1', '2', '3'] | map('int') | list }}`, what is the result?

Question 27hardmultiple choice
Read the full Ansible explanation →

You run a playbook with `msg: "{{ 'mypassword' | password_hash('sha512') }}"`. What is the output?

Question 28hardmultiple choice
Read the full Transform data with filters and plugins explanation →

You have two dictionaries: `dict1: {a: 1, b: 2}` and `dict2: {b: 3, c: 4}`. You want a new dict that combines both, with `dict2` values taking precedence for overlapping keys. Which filter chain achieves this?

Question 29easymulti select
Read the full Ansible explanation →

Which TWO filters are commonly used for list manipulation in Ansible? (Select exactly two.)

Question 30hardmulti select
Read the full Ansible explanation →

Which THREE of the following are valid Ansible lookup plugins? (Select exactly three.)

Question 31mediummulti select
Read the full Transform data with filters and plugins explanation →

Which TWO filters can be used to combine two lists into one? (Select exactly two.)

Question 32hardmultiple choice
Read the full Ansible explanation →

What is the effect of the `filter_plugins` setting in `ansible.cfg`?

Exhibit

Refer to the exhibit.
```
[defaults]
filter_plugins = /path/to/custom_filters
```
Question 33easymultiple choice
Read the full Ansible explanation →

What is the output of this playbook task?

Exhibit

Refer to the exhibit.
```yaml
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ ['apple', 'banana'] | map('upper') | list | first }}"
```
Question 34mediummultiple choice
Read the full Transform data with filters and plugins explanation →

What is the most likely cause of this error?

Exhibit

Refer to the exhibit.
```
fatal: [localhost]: FAILED! => {"msg": "template error while templating string: no filter named 'encrypt_string'. Use `ansible-doc -t filter plugin` to find available filters."}
```
Question 35easymultiple choice
Read the full Ansible explanation →

A DevOps engineer needs to extract the first 10 lines of a log file and store them in a variable for further processing. Which Ansible filter should be used?

Question 36mediummultiple choice
Read the full Ansible explanation →

An Ansible playbook needs to convert a list of server names into a comma-separated string for an API call. Which filter should be applied to the list variable 'server_list'?

Question 37hardmultiple choice
Read the full Ansible explanation →

An administrator must parse an inventory file where hostnames are stored in YAML format under a list 'nodes'. The task needs to extract only hostnames that contain 'prod' in the name, then sort them in reverse order. Which combination of filters in a single Ansible expression achieves this?

Question 38easymultiple choice
Read the full Ansible explanation →

A playbook needs to generate a default value for a variable if it is undefined or empty. Which filter with a default value should be used?

Question 39mediummultiple choice
Read the full Ansible explanation →

An Ansible role is designed to work on both RHEL 7 and RHEL 8 systems. The role uses the 'redhat_subscription' module. However, on RHEL 8, the module requires a different parameter name. The developer wants to use a conditional parameter based on the OS version. Which filter allows checking the operating system version from 'ansible_facts'?

Question 40hardmultiple choice
Read the full Ansible explanation →

A security team requires that all passwords in an Ansible vault be encrypted with a different key from the host variables. They want to use a custom lookup plugin that fetches secrets from an external API. Which plugin type should be developed?

Question 41easymultiple choice
Read the full Ansible explanation →

A junior admin is tasked with creating a playbook that sets a variable 'app_status' to 'starting' if a service file exists, otherwise sets it to 'stopped'. Which filter should be used to test if a file exists from Ansible facts?

Question 42mediummultiple choice
Read the full Ansible explanation →

An Ansible playbook needs to dynamically include a set of variables based on the environment (dev/staging/prod). The developer wants to use a variable from a lookup plugin that returns a YAML file path. Which lookup plugin is most appropriate for fetching a file’s contents?

Question 43hardmultiple choice
Read the full Ansible explanation →

A company uses Ansible Tower and has defined a custom inventory script. The inventory returns JSON with nested groups. The playbook needs to list all hosts from a specific group 'webservers' that are not in the 'drain' subgroup. Which combination of filters correctly extracts these hosts?

Question 44easymulti select
Read the full Ansible explanation →

Which TWO filters are commonly used to transform strings in Ansible? (Select exactly two.)

Question 45mediummulti select
Read the full Ansible explanation →

Which THREE features are provided by Ansible's filter plugins? (Select exactly three.)

Question 46hardmulti select
Read the full Ansible explanation →

A senior engineer needs to debug an Ansible playbook that uses lookups. Which TWO plugins can be used to retrieve data from a file on the control node? (Select exactly two.)

Question 47mediummultiple choice
Read the full Ansible explanation →

Refer to the exhibit. After running the playbook, what is the value of 'clean_list'?

Exhibit

Refer to the exhibit.
```yaml
- name: Transform data
  hosts: localhost
  vars:
    raw_data:
      - " apple "
      - "BANANA"
      - "  cherry  "
  tasks:
    - name: Clean and normalize
      set_fact:
        clean_list: "{{ raw_data | map('trim') | map('lower') | list }}"
```
Question 48hardmultiple choice
Read the full Transform data with filters and plugins explanation →

Refer to the exhibit. Assuming the managed node is RHEL 7.9, what is the output of the debug task?

Exhibit

Refer to the exhibit.
```yaml
- name: Example playbook
  hosts: all
  tasks:
    - name: Set version fact
      set_fact:
        os_version: "{{ ansible_facts['ansible_distribution_version'] }}"
    - name: Check if version filter works
      debug:
        msg: "{{ '7.9' is version('7.8', '>=') }}"
```
Question 49easymultiple choice
Read the full Transform data with filters and plugins explanation →

Refer to the exhibit. What is the output of the debug task?

Exhibit

Refer to the exhibit.
```yaml
- name: Get interface IP
  hosts: localhost
  vars:
    interfaces:
      - name: eth0
        ip: 192.168.1.10
      - name: eth1
        ip: 10.0.0.5
  tasks:
    - name: Show IP of eth0
      debug:
        msg: "{{ interfaces | selectattr('name', 'equalto', 'eth0') | map(attribute='ip') | first }}"
Question 50easymultiple choice
Read the full Ansible explanation →

An Ansible playbook retrieves a JSON response from an API and stores it in the variable `api_response`. The JSON structure is a list of objects, each with keys `name`, `status`, and `id`. The team needs to create a list of names for objects where status is 'active'. Which filter should be used?

Question 51mediummultiple choice
Read the full Transform data with filters and plugins explanation →

An administrator needs to combine two dictionaries, `base_config` and `user_config`, where keys in `user_config` should override keys in `base_config`, and nested dictionaries should be merged recursively. Which filter syntax achieves this?

Question 52hardmultiple choice
Read the full Ansible explanation →

A developer wrote a custom filter plugin in a Python file `my_filters.py` and placed it in the directory `./filter_plugins/`. The playbook fails with 'ERROR! no filter named 'my_custom_filter''. The playbook is located in `/home/user/project/playbook.yml`. The `ansible.cfg` file in the same directory does not set `filter_plugins`. Which is the most likely cause?

Question 53easymultiple choice
Read the full Ansible explanation →

An Ansible task uses the variable `{{ my_var | default(required=true) }}`. What happens if `my_var` is undefined?

Question 54mediummultiple choice
Read the full Ansible explanation →

Given a list of dictionaries `users` with keys `name` and `role`, a playbook needs to create a list of names where role is 'admin'. Which expression achieves this?

Question 55hardmultiple choice
Read the full Ansible explanation →

A large-scale Ansible deployment processes a list of thousands of network devices. Using the `subelements` filter to iterate over interfaces is causing very slow playbook execution. Which approach can significantly improve performance?

Question 56easymultiple choice
Read the full Ansible explanation →

An Ansible playbook needs to extract the domain name from a list of email addresses stored in variable `emails`. The domain appears after the '@' symbol. Which filter should be used?

Question 57mediummultiple choice
Read the full Ansible explanation →

A playbook has a dictionary `config` that maps service names to ports. The team wants to iterate over both keys and values in a task. Which filter should be used to convert the dictionary into a list of key-value pairs?

Question 58hardmultiple choice
Read the full Ansible explanation →

A custom filter plugin named `custom_filter` is stored in `./filter_plugins/` relative to the playbook. The playbook runs on a control node where the `ansible.cfg` sets `filter_plugins = /opt/ansible/filters`. Which location will Ansible search for the plugin first?

Question 59mediummulti select
Read the full Ansible explanation →

Which TWO filters are commonly used to manipulate JSON data in Ansible? (Select exactly two.)

Question 60hardmulti select
Read the full Ansible explanation →

Which THREE are valid uses of lookup plugins in Ansible? (Select exactly three.)

Question 61easymulti select
Read the full Transform data with filters and plugins explanation →

Which TWO filters can be used to conditionally select elements from a list based on a test? (Select exactly two.)

Question 62hardmultiple choice
Read the full Ansible explanation →

A company manages a large infrastructure of 10,000 servers using Ansible. The Ansible control node runs on a powerful machine with 32 cores and 64GB RAM. Recently, a playbook that processes server facts and generates a compliance report has become extremely slow, taking over 6 hours to complete. The playbook uses several `set_fact` tasks with complex jinja2 filters including `selectattr`, `map`, `json_query`, and `combine`. The inventory is stored in a dynamic inventory script that returns JSON. The team suspects that the filter operations are causing performance bottlenecks, especially when creating large data structures. A junior engineer suggests splitting the playbook into multiple plays and using `delegate_to` to distribute processing across managed nodes. Another suggests using the `ansible.builtin` module instead of filters. The senior architect recommends converting the heavy filter logic into a custom action plugin. What is the most effective approach to significantly reduce the execution time while maintaining functionality?

Question 63easymultiple choice
Read the full Ansible explanation →

An Ansible playbook needs to parse a JSON output from a REST API and extract the value of a nested key "data.settings.timeout". The output is stored in the variable "api_result". Which filter should be used to safely extract the value, with a default of 30 if the key is missing or the JSON is malformed?

Question 64hardmultiple choice
Read the full Ansible explanation →

An Ansible role uses a variable "server_list" which is a list of dictionaries. Each dictionary has a key "ports" which should be a list of integers. However, due to inconsistent input, "ports" could be a comma-separated string (e.g., "80,443") or already a list of integers (e.g., [80,443]). The engineer wants to normalize "ports" to always be a list of integers for further processing. Which of the following tasks correctly normalizes the "ports" field?

Question 65mediummulti select
Read the full Ansible explanation →

An Ansible playbook uses the "community.general" collection to manage firewall rules. The engineer wants to use a lookup plugin to fetch the current IPv4 address of a host to include in a dynamic inventory script. Which TWO of the following options correctly describe the usage of lookup plugins in Ansible?

Question 66easymultiple choice
Read the full Ansible explanation →

An administrator is writing a playbook to manage multiple web servers. The playbook uses a variable "server_facts" which is a list of dictionaries with keys "hostname", "ip", and "status". The administrator needs to extract a list of all hostnames where status is "online". The administrator writes:

- name: Get online hosts set_fact: online_hosts: "{{ server_facts | selectattr('status', '==', 'online') | map(attribute='hostname') | list }}"

However, when running the playbook, the "selectattr" filter fails with an error: "Invalid data passed to filter". The administrator checks the structure of "server_facts" and confirms it is a list of dicts with the expected keys. What is the most likely cause of the error?

Question 67mediummultiple choice
Read the full Ansible explanation →

An Ansible playbook is used to generate configuration files for network devices. The variables are defined in a vars file like: ---

interfaces:

- name: GigabitEthernet1 ip: 192.168.1.1/24 - name: GigabitEthernet2 ip: 10.0.0.1/24

The playbook uses a Jinja2 template to render the config. The template iterates over interfaces and writes "ip address" lines. However, the designer wants to support an additional field "secondary_ips" which is a list of IP addresses (e.g., ["192.168.2.1/24", "192.168.3.1/24"]). In the template, they want to generate multiple "ip address" lines for each interface, one for the primary IP and one for each secondary IP. The following template fragment is used:

{% for iface in interfaces %}
interface {{ iface.name }}
 ip address {{ iface.ip }}
{% for sec in iface.secondary_ips|default([]) %}
 ip address {{ sec }}
{% endfor %}
{% endfor %}

This works when secondary_ips is defined. However, some interfaces have secondary_ips defined as a string (e.g., "192.168.2.1/24") instead of a list. The playbook fails because the inner loop tries to iterate over a string. The engineer wants to normalize the data in the playbook before passing to the template, so that secondary_ips is always a list. Which of the following set_fact tasks will correctly transform the interfaces list to ensure secondary_ips is always a list (even if missing or a string)?

Question 68hardmultiple choice
Read the full Ansible explanation →

An Ansible automation is used to manage firewall rules on a set of Linux servers. The playbook defines a variable "allow_rules" as: allow_rules: - proto: tcp dport: 80 comment: HTTP - proto: tcp dport: 443 comment: HTTPS

The engineer needs to use the "iptables" module to create rules. The module expects "chain" to be specified, and the engineer wants to dynamically set the chain based on the port: ports 80 and 443 go to "INPUT" chain, while others go to "FORWARD". The engineer writes a loop: - name: Add iptables rules iptables: chain: "{{ item.dport | map('some_filter') }}" protocol: "{{ item.proto }}" destination_port: "{{ item.dport }}" comment: "{{ item.comment }}" loop: "{{ allow_rules }}"

But this fails because the chain field expects a string, not a list. The engineer realizes the map filter returns a list. Which of the following modifications correctly sets the chain based on port number?

Question 69mediummultiple choice
Read the full Ansible explanation →

A senior automation engineer is optimizing a playbook that processes large amounts of data. The playbook uses the "json_query" filter to filter and extract specific fields from a complex JSON structure returned by an API. The engineer notices that the playbook runs very slowly and consumes a lot of memory. They suspect the json_query filter is inefficient for this use case. The engineer wants to replace json_query with a combination of built-in Ansible filters to improve performance. The JSON structure is as follows:

{
  "servers": [
    {"name": "web01", "status": "active", "role": "web"},
    {"name": "web02", "status": "active", "role": "web"},
    {"name": "db01", "status": "active", "role": "db"}
  ]
}

The engineer needs to extract a list of server names where the status is "active" and the role is "web". The current code using json_query is: server_names: "{{ api_result | json_query(\"servers[?status=='active' && role=='web'].name\") }}" Which of the following alternatives uses only Ansible built-in filters (not json_query) and is likely to be more efficient?

Question 70mediummulti select
Read the full Ansible explanation →

An Ansible automation engineer is writing a playbook to configure network devices. They need to extract specific data from a JSON structure returned by an API call. Which two filters from the `ansible.utils` collection can be used to manipulate the data?

Question 71hardmultiple choice
Read the full Ansible explanation →

The playbook above fails with an error. What is the most likely cause?

Exhibit

Refer to the exhibit.
```yaml
---
- hosts: localhost
  vars:
    original_list:
      - "hello123"
      - "world456"
      - "test789"
  tasks:
    - name: Filter list
      set_fact:
        filtered_list: "{{ original_list | select('match') }}"
```
Question 72easymultiple choice
Read the full Ansible explanation →

A DevOps team uses Ansible to manage a large fleet of web servers. They have a custom filter plugin, `custom_encrypt`, stored in `/opt/ansible/filter_plugins/custom_encrypt.py`. This filter works correctly in Ansible 2.9. After upgrading the control node to Ansible 2.14 (ansible-core 2.14), the filter is no longer found. The `ansible.cfg` includes `filter_plugins = /opt/ansible/filter_plugins` and the file permissions are 644. The team verified the Python file is valid and contains the correct `FilterModule` class with a `filters()` method. Which of the following is the most likely cause of the issue?

Practice tests

Scored 10-question sessions with instant feedback and explanations.

EX294 Practice Test 1 — 10 Questions→EX294 Practice Test 2 — 10 Questions→EX294 Practice Test 3 — 10 Questions→EX294 Practice Test 4 — 10 Questions→EX294 Practice Test 5 — 10 Questions→EX294 Practice Exam 1 — 20 Questions→EX294 Practice Exam 2 — 20 Questions→EX294 Practice Exam 3 — 20 Questions→EX294 Practice Exam 4 — 20 Questions→Free EX294 Practice Test 1 — 30 Questions→Free EX294 Practice Test 2 — 30 Questions→Free EX294 Practice Test 3 — 30 Questions→EX294 Practice Questions 1 — 50 Questions→EX294 Practice Questions 2 — 50 Questions→EX294 Exam Simulation 1 — 100 Questions→

Practice by domain

Each domain maps to a weighted exam section. Focus on the domain where you are weakest.

Deploy Ansible Automation PlatformManage inventories and credentialsManage task execution and rolesCoordinate rolling updatesTransform data with filters and pluginsCreate content collections and execution environmentsImplement advanced Ansible automationManage automation security and operations

Practice by scenario

Filter questions by type — troubleshooting, exhibit, drag-and-drop, PBQ, ACLs, OSPF, and more.

Browse scenarios→

Continue studying

All Transform data with filters and plugins setsAll Transform data with filters and plugins questionsEX294 Practice Hub