community.dns.nameserver_record_info 模块 – 查询 DNS 名称所有名称服务器的特定类型的所有记录

注意

此模块是 community.dns 集合 (版本 3.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.dns。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:community.dns.nameserver_record_info

community.dns 2.6.0 中的新增功能

概要

  • 给定一个 DNS 名称和一个记录类型,将检索负责此 DNS 名称的所有名称服务器,并从中检索此名称的给定类型的全部记录。

要求

以下是执行此模块的主机所需的条件。

  • dnspython >= 1.15.0(较旧的版本可能也适用)

参数

参数

注释

always_ask_default_resolver

布尔值

设置为 true(默认值)时,将使用默认解析器查找子区域的权威名称服务器。有关如何配置默认解析器,请参阅 server

设置为 false 时,将使用父区域的权威名称服务器查找子区域的权威名称服务器。只有当名称服务器最近更改并且尚未传播时,此设置才有意义。

选项

  • false

  • true ← (默认值)

name

列表 / 元素=字符串 / 必需

要检索其名称服务器的 DNS 名称列表。

query_retry

整数

DNS 查询超时重试次数。

默认值: 3

query_timeout

浮点数

每次 DNS 查询的超时时间(秒)。

默认值: 10.0

server

列表 / 元素=字符串

community.dns 2.7.0 中新增

用于查找结果的 DNS 服务器。必须是一个或多个 IP 地址的列表。

默认情况下,使用系统的标准解析器。

servfail_retries

整数

对 SERVFAIL 错误重试的次数。

默认值: 0

type

字符串 / 必需

要检索的记录类型。

选项

  • "A"

  • "ALL"

  • "AAAA"

  • "CAA"

  • "CNAME"

  • "DNAME"

  • "DNSKEY"

  • "DS"

  • "HINFO"

  • "LOC"

  • "MX"

  • "NAPTR"

  • "NS"

  • "NSEC"

  • "NSEC3"

  • "NSEC3PARAM"

  • "PTR"

  • "RP"

  • "RRSIG"

  • "SOA"

  • "SPF"

  • "SRV"

  • "SSHFP"

  • "TLSA"

  • "TXT"

属性

属性

支持

描述

check_mode

支持:完全支持

此操作不会修改状态。

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持: N/A

此操作不会修改状态。

处于 diff 模式时,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

备注

注意

  • 2.0.0 之前的 dnspython 无法正确支持在 TXT 类记录中(取消)转义 UTF-8。这可能导致 TXT 记录解码错误。请使用 2.0.0 或更高版本的 dnspython 来解决此问题;另请参见 https://github.com/rthalley/dnspython/issues/321。不幸的是,dnspython 2.0.0 需要 Python 3.6 或更高版本。

示例

- name: Retrieve TXT values from all nameservers for two DNS names
  community.dns.nameserver_record_info:
    name:
      - www.example.com
      - example.org
    type: TXT
  register: result

- name: Show TXT values for www.example.com for all nameservers
  ansible.builtin.debug:
    msg: '{{ result.results[0].result }}'

返回值

常见的返回值已在此处记录,以下是此模块特有的字段。

描述

results

列表 / 元素=字典

关于在name中提供的每个DNS名称的记录信息。

返回值:始终返回

示例: [{"name": "www.example.com", "result": [{"nameserver": "ns1.example.com", "values": [{"address": "127.0.0.1"}]}, {"nameserver": "ns2.example.com", "values": [{"address": "127.0.0.1"}]}]}, {"name": "example.org", "result": [{"nameserver": "ns1.example.org", "values": [{"address": "127.0.0.1"}, {"address": "127.0.0.2"}]}, {"nameserver": "ns2.example.org", "values": [{"address": "127.0.0.2"}]}, {"nameserver": "ns3.example.org", "values": [{"address": "127.0.0.1"}]}]}]

name

字符串

此条目所属的DNS名称。

返回值:始终返回

示例: "www.example.com"

result

列表 / 元素=字典

每个名称服务器的值列表。

返回值:成功

示例: [{"nameserver": "ns1.example.com", "values": ["X"]}, {"nameserver": "ns2.example.com", "values": ["X"]}]

nameserver

字符串

名称服务器。

返回值:成功

示例: "ns1.example.com"

values

列表 / 元素=字典

类型为type的记录。

取决于type,返回不同的字段。

对于type=TXTtype=SPF,还将连接后的值作为results[].result[].values[].value返回。

返回值:成功

示例: [{"address": "127.0.0.1"}]

address

字符串

IPv4或IPv6地址。

返回值:如果type=Atype=AAAA

algorithm

整数

算法ID。

返回值:如果type=DNSKEYtype=DStype=NSEC3type=NSEC3PARAMtype=RRSIGtype=SSHFP

altitude

浮点数

海拔高度。

返回值:如果type=LOC

cert

字符串

证书。

返回值:如果type=TLSA

cpu

字符串

CPU。

返回值:如果type=HINFO

digest

字符串

摘要。

返回值:如果type=DS

digest_type

整数

摘要类型。

返回值:如果type=DS

exchange

字符串

交换服务器。

返回值:如果type=MX

expiration

整数

过期时间戳(Unix时间戳)。

返回值:如果type=RRSIG

expire

整数

如果主名称服务器没有响应,辅助名称服务器应停止对该区域的请求的秒数。

返回值:如果type=SOA

fingerprint

字符串

指纹。

返回值:如果type=SSHFP

flags

整数

标志。

对于type=NAPTR,这实际上是string类型。

返回值:如果type=CAAtype=DNSKEYtype=NAPTRtype=NSEC3type=NSEC3PARAM

fp_type

整数

指纹类型。

返回值:如果type=SSHFP

horizontal_precision

浮点数

位置的水平精度。

返回值:如果type=LOC

inception

整数

起始时间戳(Unix时间戳)。

返回值:如果type=RRSIG

iterations

整数

迭代次数。

返回值:如果type=NSEC3type=NSEC3PARAM

key

字符串

密钥。

返回值:如果type=DNSKEY

key_tag

整数

密钥标签。

返回值:如果type=DStype=RRSIG

labels

整数

标签。

返回值:如果type=RRSIG

latitude

列表 / 元素=整数

位置的纬度。

返回值:如果type=LOC

longitude

列表 / 元素=整数

位置的经度。

返回值:如果type=LOC

mbox

字符串

邮箱。

返回值:如果type=RP

minimum

整数

用于计算用于负缓存的TTL。

返回值:如果type=SOA

mname

字符串

此区域的主名称服务器。

返回值:如果type=SOA

mtype

整数

mtype。

返回值:如果type=TLSA

next

字符串

下一个值。

返回值:如果type=NSECtype=NSEC3

order

整数

order值。

返回:如果 type=NAPTR

original_ttl

整数

原始 TTL 值。

返回值:如果type=RRSIG

os

字符串

操作系统。

返回值:如果type=HINFO

port

整数

端口。

返回:如果 type=SRV

preference

整数

此记录的首选值。

返回:如果 type=MXtype=NAPTR

priority

整数

此记录的优先级值。

返回:如果 type=SRV

protocol

整数

协议。

返回值:如果type=DNSKEY

refresh

整数

辅助名称服务器查询主名称服务器以检测区域更改的 SOA 记录的时间间隔(秒)。

返回值:如果type=SOA

regexp

字符串

正则表达式。

返回:如果 type=NAPTR

replacement

字符串

替换值。

返回:如果 type=NAPTR

retry

整数

如果主名称服务器没有响应,辅助名称服务器重试从主名称服务器请求序列号的时间间隔(秒)。

返回值:如果type=SOA

rname

字符串

负责此区域的管理员的电子邮件地址。

返回值:如果type=SOA

salt

字符串

盐值。

返回值:如果type=NSEC3type=NSEC3PARAM

selector

整数

选择器。

返回值:如果type=TLSA

serial

整数

此区域的序列号。

返回值:如果type=SOA

service

字符串

服务。

返回:如果 type=NAPTR

signature

字符串

签名。

返回值:如果type=RRSIG

signer

字符串

签名者。

返回值:如果type=RRSIG

size

浮点数

位置的大小。

返回值:如果type=LOC

strings

列表 / 元素=字符串

此记录的字符串列表。

参见 results[].result[].values[].value 获取连接的结果。

返回:如果 type=SPFtype=TXT

tag

字符串

标签。

返回:如果 type=CAA

target

字符串

目标。

返回:如果 type=CNAMEtype=DNAMEtype=NStype=PTRtype=SRV

txt

字符串

TXT 值。

返回值:如果type=RP

type_covered

字符串

覆盖的类型。

返回值:如果type=RRSIG

usage

整数

使用标志。

返回值:如果type=TLSA

value

字符串

值。

对于 type=SPFtype=TXT,这是 results[].result[].values[].strings 的连接结果。

返回:如果 type=CAAtype=SPFtype=TXT

vertical_precision

浮点数

位置的垂直精度。

返回值:如果type=LOC

weight

整数

服务的权重。

返回:如果 type=SRV

windows

字符串

窗口。

返回值:如果type=NSECtype=NSEC3

作者

  • Felix Fontein (@felixfontein)