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 中读取。

前缀

字符串

DNS 记录的前缀。

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

必须指定 recordprefix 中的一个。

记录

字符串

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

必须指定 recordprefix 中的一个。

状态

字符串 / 必需

指定资源记录的状态。

选项

  • "present"

  • "absent"

ttl

整数

以秒为单位为新记录提供的 TTL。

这不用于记录删除。

txt_character_encoding

字符串

在 community.dns 2.5.0 中添加

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

在 community.dns 3.0.0 中,默认值更改为 decimal。之前,默认值曾经是 octal。值 decimalRFC 1035 兼容。

选项

  • "decimal" ←(默认)

  • "octal"

txt_transformation

字符串

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

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

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

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

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

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

选项

  • "api"

  • "quoted"

  • "unquoted" ← (默认)

type

字符串 / 必需

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

选项

  • "A"

  • "AAAA"

  • "CAA"

  • "CNAME"

  • "DANE"

  • "DS"

  • "HINFO"

  • "MX"

  • "NS"

  • "RP"

  • "SOA"

  • "SRV"

  • "TLSA"

  • "TXT"

value

字符串 / 必需

创建 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

支持: 完整

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