community.dns.hetzner_dns_record 模块 – 在 Hetzner DNS 服务中添加或删除单个记录

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.dns

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

community.dns 2.0.0 中的新增功能

概要

  • 创建和删除 Hetzner DNS 服务中的单个 DNS 记录。

  • 如果您不想添加/删除值,而是替换值,您将有兴趣修改**记录集**而不是单个记录。这在处理CNAMESOA记录时尤其重要。使用community.dns.hetzner_dns_record_set模块处理记录集。

  • 记录按前缀/记录名称和值匹配。

参数

参数

注释

hetzner_token

别名:api_token

字符串 / 必需

Hetzner API 的令牌。

如果未提供,将从环境变量HETZNER_DNS_TOKEN中读取。

prefix

字符串

DNS 记录的前缀。

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

必须指定recordprefix中的一个。

record

字符串

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

必须指定recordprefix中的一个。

state

字符串 / 必需

指定资源记录的状态。

选项

  • "present"

  • "absent"

ttl

整数

要赋予新记录的 TTL,以秒为单位。

这不用于记录删除。

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" ← (默认)

类型

字符串 / 必需

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

选项

  • "A"

  • "AAAA"

  • "CAA"

  • "CNAME"

  • "DANE"

  • "DS"

  • "HINFO"

  • "MX"

  • "NS"

  • "RP"

  • "SOA"

  • "SRV"

  • "TLSA"

  • "TXT"

字符串 / 必需

创建DNS记录时的新值。

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

zone_id

字符串

要修改的DNS区域的ID。

必须精确指定一个zone_namezone_id

zone_name

别名:zone

字符串

要修改的DNS区域。

必须精确指定一个zone_namezone_id

属性

属性

支持

描述

action_group

操作组: community.dns.hetzner

添加到community.dns 2.4.0中

module_defaults中使用group/community.dns.hetzner来设置此模块的默认值。

check_mode

支持:完全支持

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

diff_mode

支持:完全支持

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

备注

注意

  • 对于CNAME记录,请对值使用绝对DNS名称。绝对DNS名称以尾随句点.结尾,例如foo.example.com.。如果您使用的是没有尾随句点的相对DNS名称,则该值将相对于CNAME记录的区域。

示例

- name: Add a new.foo.com A record
  community.dns.hetzner_dns_record:
    state: present
    zone: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 1.1.1.1
    hetzner_token: access_token

- name: Remove a new.foo.com A record
  community.dns.hetzner_dns_record:
    state: absent
    zone_name: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 2.2.2.2
    hetzner_token: access_token

返回值

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

描述

zone_id

字符串

区域的ID。

已返回:成功

示例:"23"

作者

  • Markus Bergholz (@markuman)

  • Felix Fontein (@felixfontein)