community.dns.lookup_rfc8427 lookup – Look up DNS records and return RFC 8427 JSON format
Note
This lookup plugin is part of the community.dns collection (version 3.4.0).
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 community.dns
.
You need further requirements to be able to use this lookup plugin,
see Requirements for details.
To use it in a playbook, specify: community.dns.lookup_rfc8427
.
New in community.dns 3.4.0
Synopsis
Look up DNS records and return them in RFC 8427 DNS message JSON format.
RFC 8427 defines a standardized format for representing DNS messages in JSON.
Requirements
The below requirements are needed on the local controller node that executes this lookup.
dnspython >= 1.15.0 (maybe older versions also work)
Terms
Parameter |
Comments |
---|---|
Domain name(s) to query. |
Keyword parameters
This describes keyword parameters of the lookup. These are the values key1=value1
, key2=value2
and so on in the following
examples: lookup('community.dns.lookup_rfc8427', key1=value1, key2=value2, ...)
and query('community.dns.lookup_rfc8427', key1=value1, key2=value2, ...)
Parameter |
Comments |
---|---|
How to handle NXDOMAIN errors. These appear if an unknown domain name is queried.
Choices:
|
|
Number of retries for DNS query timeouts. Default: |
|
Timeout per DNS query in seconds. Default: |
|
If If Choices:
|
|
The DNS server(s) to use to look up the result. Must be a list of one or more IP addresses. By default, the system’s standard resolver is used. |
|
How often to retry on SERVFAIL errors. Default: |
|
The record type to retrieve. Choices:
|
Notes
Note
When keyword and positional parameters are used together, positional parameters must be listed before keyword parameters:
lookup('community.dns.lookup_rfc8427', term1, term2, key1=value1, key2=value2)
andquery('community.dns.lookup_rfc8427', term1, term2, key1=value1, key2=value2)
This plugin returns DNS messages in RFC 8427 JSON format, which includes
Header
,Question
,Answer
,Authority
, andAdditional
sections.Note that when using this lookup plugin with
lookup()
, and the result is a one-element list, Ansible simply returns the one element not as a list. Since this behavior is surprising and can cause problems, it is better to usequery()
instead oflookup()
. See the examples and also Forcing lookups to return lists in the Ansible documentation.
Examples
- name: Look up A (IPv4) records for example.org in RFC 8427 JSON format
ansible.builtin.debug:
msg: "{{ query('community.dns.lookup_rfc8427', 'example.org.') }}"
- name: Look up AAAA (IPv6) records for example.org in RFC 8427 JSON format
ansible.builtin.debug:
msg: "{{ query('community.dns.lookup_rfc8427', 'example.org.', type='AAAA' ) }}"
- name: Get complete DNS message for MX records
ansible.builtin.debug:
msg: "{{ query('community.dns.lookup_rfc8427', 'example.org.', type='MX' ) }}"
Return Value
Key |
Description |
---|---|
DNS messages in RFC 8427 JSON format for all queried DNS names. Every element in Returned: success Sample: |