networktocode.nautobot.query_graphql module – Queries and returns elements from Nautobot GraphQL endpoint
Note
This module is part of the networktocode.nautobot collection (version 5.3.1).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install networktocode.nautobot
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: networktocode.nautobot.query_graphql
.
New in networktocode.nautobot 1.1.0
Synopsis
Queries Nautobot via its GraphQL API through pynautobot
Note
This module has a corresponding action plugin.
Requirements
The below requirements are needed on the host that executes this module.
pynautobot
Parameters
Parameter |
Comments |
---|---|
API Version Nautobot REST API |
|
Dictionary of keys/values to pass into the GraphQL query, see (https://pynautobot.readthedocs.io/en/latest/advanced/graphql.html) for more info :ansible-option-default-bold:`Default:` :ansible-option-default:`{}` |
|
The GraphQL formatted query string, see (https://pynautobot.readthedocs.io/en/latest/advanced/graphql.html) for more details. |
|
The API token created through Nautobot, optional env=NAUTOBOT_TOKEN |
|
Whether or not to populate data in the in the root (e.g. hostvars[inventory_hostname]) or within the ‘data’ key (e.g. hostvars[inventory_hostname][‘data’]). Beware, that the root keys provided by the query will overwrite any root keys already present, leverage the GraphQL alias feature to avoid issues. |
|
The URL to the Nautobot instance to query (http://nautobot.example.com:8000), optional env=NAUTOBOT_URL |
|
Whether or not to validate SSL of the Nautobot instance |
Examples
# Make API Query without variables
- name: SET FACT OF STRING
set_fact:
query_string: |
query {
locations {
id
name
parent {
name
}
}
}
# Make query to GraphQL Endpoint
- name: Obtain list of locations from Nautobot
networktocode.nautobot.query_graphql:
url: http://nautobot.local
token: thisIsMyToken
query: "{{ query_string }}"
# Example with variables
- name: SET FACTS TO SEND TO GRAPHQL ENDPOINT
set_fact:
graph_variables:
$location_name: AMS01
query_string: |
query ($location_name: String!) {
locations (name: $location_name) {
id
name
parent {
name
}
}
}
# Get Response with variables and set to root keys
- name: Obtain list of devices at location in variables from Nautobot
networktocode.nautobot.query_graphql:
url: http://nautobot.local
token: thisIsMyToken
query: "{{ query_string }}"
graph_variables: "{{ graph_variables }}"
update_hostvars: yes
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Data result from the GraphQL endpoint |
|
Variables passed in |
|
Query string that was sent to Nautobot |
|
Nautobot URL that was supplied for troubleshooting |