Query Ansible Playbooks
Query Ansible playbooks with cnquery
Rely on cnquery to query and analyze Ansible playbooks. Explore tasks, roles, handlers, and variables within your infrastructure-as-code configurations.
Requirements
To analyze Ansible playbooks with cnquery, you must have:
- cnquery installed on your workstation.
- An Ansible playbook file or directory.
Query an Ansible playbook
To open a cnquery shell and query an Ansible playbook:
cnquery shell ansible PATH| For... | Substitute... |
|---|---|
| PATH | The path to the Ansible playbook or directory |
For example:
cnquery shell ansible ./playbooks/site.ymlOr to scan a directory containing playbooks:
cnquery shell ansible ./playbooks/Example queries
Once connected, you can query Ansible playbook resources.
This query retrieves all plays in the playbook:
cnquery> ansible.plays
ansible.plays: [
0: ansible.play name="Configure web servers"
1: ansible.play name="Configure database servers"
...
]This query retrieves information about a specific play:
cnquery> ansible.play
ansible.play: {
name: "Configure web servers"
hosts: "webservers"
...
}This query retrieves task information:
cnquery> ansible.task
ansible.task: {
name: "Install nginx"
...
}This query retrieves handler information:
cnquery> ansible.handler
ansible.handler: {
name: "restart nginx"
...
}Exit the cnquery shell
To exit the cnquery shell, either press Ctrl + D or type exit.
Learn more
-
To learn more about how the MQL query language works, read Write Effective MQL.
-
For a list of all the Ansible resources and fields you can query, read the Ansible Resource Pack Reference.