community.dns.wait_for_txt 模块 – 等待所有权威名称服务器上出现 TXT 记录

注意

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

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

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

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

community.dns 0.1.0 中的新增功能

概要

  • 等待具有特定值的 TXT 记录在 DNS 名称的**所有**权威名称服务器上显示。

要求

执行此模块的主机需要以下要求。

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

参数

参数

注释

always_ask_default_resolver

布尔值

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

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

选项

  • false

  • true ← (默认值)

max_sleep

浮点数

探测 TXT 记录的两轮之间最大睡眠秒数。

默认值: 10.0

query_retry

整数

DNS 查询超时重试次数。

默认值: 3

query_timeout

浮点数

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

默认值: 10.0

records

列表 / 元素=字典 / 必需

要查找的包含 TXT 记录的 DNS 名称列表。

mode

字符串

records[].values 中值的比较模式。

如果为 subset,则 records[].values 应为 DNS 名称设置的 TXT 值的(不一定正确的)子集。

如果为 superset,则 records[].values 应为 DNS 名称设置的 TXT 值的(不一定正确的)超集。这包括未设置 TXT 条目的情况。

如果为 superset_not_empty,则 records[].values 应为 DNS 名称设置的 TXT 值的(不一定正确的)超集,假设至少存在一个 TXT 记录。

如果为 equals,则 records[].values 应与 DNS 名称的 TXT 值(直至顺序)相同的字符串集。

如果为 equals_ordered,则 records[].values 应与 DNS 名称的 TXT 值相同的排序字符串列表。

选项

  • "subset" ← (默认值)

  • "superset"

  • "superset_not_empty"

  • "equals"

  • "equals_ordered"

name

字符串 / 必需

DNS 名称,例如 www.example.com

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

要查找的TXT值。

服务器

列表 / 元素=字符串

在community.dns 2.7.0中添加

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

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

servfail_retries

整数

在community.dns 2.6.0中添加

对SERVFAIL错误重试的频率。

默认值: 0

超时

浮点数

等待所有记录的全局超时时间(秒)。

如果未设置,则无限期等待。

属性

属性

支持

描述

check_mode

支持:完全支持

在community.dns 2.4.0中添加

此操作不会修改状态。

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

diff_mode

支持: N/A

此操作不会修改状态。

在差异模式下,将返回有关已更改内容(或可能需要在check_mode下更改的内容)的详细信息。

示例

- name: Wait for a TXT entry to appear
  community.dns.wait_for_txt:
    records:
      # We want that www.example.com has a single TXT record with value 'Hello world!'.
      # There should not be any other TXT record for www.example.com.
      - name: www.example.com
        values: "Hello world!"
        mode: equals
      # We want that example.com has a specific SPF record set.
      # We do not care about other TXT records.
      - name: www.example.com
        values: "v=spf1 a mx -all"
        mode: subset

返回值

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

描述

completed

整数

已完成的检查次数。

返回:始终

示例: 3

records

列表 / 元素=字典

查询的TXT记录的结果。

这些条目与records参数的条目一一对应,顺序完全相同。

返回:始终

示例: [{"check_count": 1, "done": true, "name": "example.com", "values": ["a", "b", "c"]}, {"check_count": 0, "done": false, "name": "foo.example.org"}]

check_count

整数

为此DNS名称检查TXT记录的频率。

返回:始终

示例: 3

done

布尔值

检查是否完成。

返回:始终

示例: false

name

字符串

此检查所针对的DNS名称。

返回:始终

示例: "example.com"

字典

对于DNS名称的每个权威名称服务器,列出在最后一次查找期间检索到的TXT记录。

一旦对所有检索到的TXT记录完成检查,便不再检查此DNS名称的TXT记录。

如果名称服务器有多个TXT条目,则顺序与从该名称服务器接收到的顺序相同。这可能与检查中提供的顺序不同。

返回:至少进行了一次查找

示例: {"ns1.example.com": ["TXT value 1", "TXT value 2"], "ns2.example.com": ["TXT value 2"]}

作者

  • Felix Fontein (@felixfontein)