community.dns.wait_for_txt 模块 – 等待所有权威域名服务器上 TXT 记录可用

注意

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

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

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

要在 playbook 中使用它,请指定: 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 中值的比较模式。

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

如果为 supersetrecords[].values 应为 DNS 名称设置的 TXT 值的(不一定正确的)超集。这包括未设置任何 TXT 记录的情况。

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

如果为 equalsrecords[].values 应与 DNS 名称的 TXT 值(最多按顺序)相同的字符串集。

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

选项

  • "subset" ← (默认值)

  • "superset"

  • "superset_not_empty"

  • "equals"

  • "equals_ordered"

name

字符串 / 必需

DNS 名称,例如 www.example.com

values

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

要查找的 TXT 值。

server

列表 / 元素=字符串

在 community.dns 2.7.0 中添加

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

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

servfail_retries

整数

在 community.dns 2.6.0 中添加

对 SERVFAIL 错误重试的次数。

默认值: 0

timeout

浮点数

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

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

属性

属性

支持

描述

check_mode

支持:完全支持

在 community.dns 2.4.0 中添加

此操作不会修改状态。

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

diff_mode

支持: N/A

此操作不会修改状态。

处于diff模式时,将返回有关已更改内容(或可能需要在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"

values

字典

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

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

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

返回值:至少进行过一次查找

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

作者

  • Felix Fontein (@felixfontein)