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).
You might already have this collection installed if you are using the ansible package.
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. Support for 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, andAdditionalsections.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: |