community.dns.hosttech_dns_record_sets 模块 – 批量同步 Hosttech DNS 服务中的 DNS 记录集

注意

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

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

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

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

community.dns 2.0.0 中的新增功能

概要

  • 批量同步 Hosttech DNS 服务中的 DNS 记录集。

  • 可以通过为该记录集指定 record_sets[].ignore=true 来忽略某些记录集。

  • 该模块允许一次设置、修改和删除多个 DNS 记录集。

  • 此模块替换了 community.dns 2.0.0 之前的 hosttech_dns_records

  • 使用 prune 选项,还可以删除模块参数中未提及的现有记录集。通过这种方式,可以将 DNS 区域的预期状态与预期状态同步。

要求

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

  • lxml

参数

参数

注释

hosttech_password

字符串

Hosttech API 用户的密码。

如果提供,则还必须提供 hosttech_username

hosttech_token 互斥。

hosttech_token

别名:api_token

字符串

community.dns 0.2.0 中添加

Hosttech API 用户的密码。

hosttech_usernamehosttech_password 互斥。

从 community.dns 1.2.0 开始,可以使用别名 api_token

hosttech_username

字符串

Hosttech API 用户的用户名。

如果提供,则还必须提供 hosttech_password

hosttech_token 互斥。

prune

布尔值

如果设置为 true,将删除区域中 record_sets 中未列出的所有现有记录。

选项

  • false ← (默认)

  • true

record_sets

别名:records

列表 / 元素=字典 / 必需

区域中应该存在的记录。

ignore

布尔值

如果设置为 true,则将忽略 record_sets[].value

prune=true 时,这很有用,但您不希望删除某些条目而不必知道它们的当前值。

选项

  • false ← (默认)

  • true

prefix

字符串

DNS 记录的前缀。

这是record_sets[].recordzone_name之前的部分。例如,如果要修改的记录是区域example.comwww.example.com,则前缀为www。如果此示例中的记录为example.com,则前缀为''(空字符串)。

必须且仅指定一个record_sets[].recordrecord_sets[].prefix

record

字符串

要创建或删除的完整DNS记录。

必须且仅指定一个record_sets[].recordrecord_sets[].prefix

ttl

整数

赋予新记录的TTL(以秒为单位)。

默认值: 3600

type

字符串 / 必填

要创建或删除的DNS记录类型。

选项

  • "A"

  • "AAAA"

  • "CAA"

  • "CNAME"

  • "MX"

  • "NS"

  • "PTR"

  • "SPF"

  • "SRV"

  • "TXT"

value

列表 / 元素=字符串

创建DNS记录时的新的值。

允许使用YAML列表或多个以逗号分隔的值。

删除记录时,必须指定记录的所有值,否则将不会删除。

如果record_sets[].ignore=false,则必须指定。

txt_character_encoding

字符串

在community.dns 2.5.0中添加

是否将数字转义序列(\xyz)视为八进制数或十进制数。仅当txt_transformation=quoted时才使用。

在community.dns 3.0.0中,默认值更改为decimal。之前,默认值为octaldecimal值与RFC 1035兼容。

选项

  • "decimal" ← (默认)

  • "octal"

txt_transformation

字符串

确定如何将TXT条目值在API和此模块的输入和输出之间转换。

api值表示此模块返回的值与API返回的值相同,并以传递到此模块的方式推送到API。对于幂等性检查,将输入字符串与API返回的字符串进行比较。API可能会自动转换某些值,例如拆分长值或添加引号,这可能会导致幂等性问题。

unquoted值会自动转换值,以便您可以传递未加引号的值,并且模块将返回未加引号的值。如果您传递加引号的值,它们将被双引号括起来。

quoted值会自动转换值,以便您必须为包含空格、引号和反斜杠等字符以及长度超过255字节的值使用引号。它还确保以规范化的编码返回来自API的值。

默认值unquoted确保您可以处理值,而无需关心如何正确地为DNS添加引号。大多数用户应该使用unquotedquoted,而不是api

注意:转换代码假设值为UTF-8编码。如果您需要其他编码,请使用txt_transformation=api并自行处理编码。

选项

  • "api"

  • "quoted"

  • "unquoted" ← (默认)

zone_id

整数

要修改的DNS区域的ID。

必须且仅指定一个zone_namezone_id

zone_name

别名:zone

字符串

要修改的DNS区域。

必须且仅指定一个zone_namezone_id

属性

属性

支持

描述

action_group

动作组: community.dns.hosttech

在community.dns 2.4.0中添加

module_defaults中使用group/community.dns.hosttech为该模块设置默认值。

check_mode

支持:完全支持

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

diff_mode

支持:完全支持

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

示例

- name: Make sure some records exist and have the expected values
  community.dns.hosttech_dns_record_sets:
    zone_name: foo.com
    records:
      - prefix: new
        type: A
        ttl: 7200
        value:
          - 1.1.1.1
          - 2.2.2.2
      - prefix: new
        type: AAAA
        ttl: 7200
        value:
          - "::1"
      - record: foo.com
        type: TXT
        value:
          - test
    hosttech_token: access_token

- name: Synchronize DNS zone with a fixed set of records
  # If a record exists that is not mentioned here, it will be deleted
  community.dns.hosttech_dns_record_sets:
    zone_id: 23
    purge: true
    records:
      - prefix: ''
        type: A
        value: 127.0.0.1
      - prefix: ''
        type: AAAA
        value: "::1"
      - prefix: ''
        type: NS
        value:
          - ns-1.hoster.com
          - ns-2.hoster.com
          - ns-3.hoster.com
    hosttech_token: access_token

返回值

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

描述

zone_id

整数

区域的ID。

返回:成功

示例: 23

作者

  • Felix Fontein (@felixfontein)