community.dns.lookup 查询 – 查找 DNS 记录

注意

此查找插件是 community.dns 集合(版本 3.1.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install community.dns。您需要进一步的要求才能使用此查找插件,有关详细信息,请参阅要求

要在剧本中使用它,请指定:community.dns.lookup

community.dns 2.6.0 中的新功能

概要

  • 查找 DNS 记录。

要求

本地控制节点需要满足以下要求才能执行此查找。

  • dnspython >= 1.15.0 (可能较旧的版本也有效)

  • ipaddress(在 Python 2.7 上使用 server 时)

术语

参数

注释

术语

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

要查询的域名。

关键字参数

这描述了查找的关键字参数。这些是以下示例中的值 key1=value1key2=value2 等:lookup('community.dns.lookup', key1=value1, key2=value2, ...)query('community.dns.lookup', key1=value1, key2=value2, ...)

参数

注释

nxdomain_handling

字符串

如何处理 NXDOMAIN 错误。如果查询了未知的域名,则会出现这些错误。

empty (默认) 返回该域名的空结果。这意味着对于相应的域名,不会向 _result 添加任何内容。

fail 使查找失败。

message 将字符串 NXDOMAIN 添加到 _result

选项

  • "empty" ← (默认)

  • "fail"

  • "message"

query_retry

整数

DNS 查询超时的重试次数。

默认值: 3

query_timeout

浮点数

每次 DNS 查询的超时时间(以秒为单位)。

默认值: 10.0

布尔值

在 community.dns 3.0.0 中添加

如果 false,则假定输入是绝对域名。

如果 true,如果输入不以 . 结尾,则假定输入是相对域名,系统解析器配置中配置的搜索列表将用于相对名称,并且解析器的域可能会添加到相对名称中。

请注意,此行为在 community.dns 3.0.0 中发生了更改。在 community.dns 2.x.y 中,search=false 是唯一可用的选择。

选项

  • false

  • true ← (默认)

server

列表 / 元素=字符串

用于查找结果的 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"

备注

注意

  • 当关键字和位置参数一起使用时,位置参数必须在关键字参数之前列出:lookup('community.dns.lookup', term1, term2, key1=value1, key2=value2)query('community.dns.lookup', term1, term2, key1=value1, key2=value2)

  • 请注意,当使用此查找插件与 lookup() 时,如果结果是一个单元素列表,Ansible 只会返回该元素而不是列表。 由于此行为令人惊讶且可能导致问题,因此最好使用 query() 而不是 lookup()。 请参阅示例以及 Ansible 文档中的 强制查找返回列表

示例

- name: Look up A (IPv4) records for example.org
  ansible.builtin.debug:
    msg: "{{ query('community.dns.lookup', 'example.org.') }}"

- name: Look up AAAA (IPv6) records for example.org
  ansible.builtin.debug:
    msg: "{{ query('community.dns.lookup', 'example.org.', type='AAAA' ) }}"

返回值

描述

返回值

列表 / 元素=字符串

所有查询的 DNS 名称的 type 类型的记录。

如果在 _terms 中查询了多个 DNS 名称,则生成的列表已连接。

返回: 成功

示例: ["127.0.0.1"]

作者

  • Felix Fontein (@felixfontein)

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。