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

注意

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

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

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

要在 playbook 中使用它,请指定: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)

提示

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