community.dns.hosttech_dns_record 模块 – 在 Hosttech 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

community.dns 2.0.0 中的新功能

概要

  • 在 Hosttech DNS 服务中创建和删除单个 DNS 记录。

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

  • 记录通过前缀/记录名称和值进行匹配。

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

要求

以下要求需要在执行此模块的主机上满足。

  • 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 互斥。

prefix

字符串

DNS 记录的前缀。

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

必须指定 recordprefix 中的一个,且只能指定一个。

record

字符串

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

必须指定 recordprefix 中的一个,且只能指定一个。

state

string / required

指定资源记录的状态。

Choices

  • "present"

  • "absent"

ttl

integer

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

这不用于删除记录。

默认值: 3600

txt_character_encoding

字符串

在 community.dns 2.5.0 中添加

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

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

Choices

  • "decimal" ← (默认)

  • "octal"

txt_transformation

字符串

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

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

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

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

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

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

Choices

  • "api"

  • "quoted"

  • "unquoted" ← (默认)

type

string / required

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

Choices

  • "A"

  • "AAAA"

  • "CAA"

  • "CNAME"

  • "MX"

  • "NS"

  • "PTR"

  • "SPF"

  • "SRV"

  • "TXT"

value

string / required

创建 DNS 记录时的新值。

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

zone_id

integer

要修改的 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: Add a new.foo.com A record
  community.dns.hosttech_dns_record:
    state: present
    zone: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 1.1.1.1
    hosttech_token: access_token

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

返回值

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

Key

描述

zone_id

integer

区域的 ID。

返回: 成功

示例: 23

作者

  • Felix Fontein (@felixfontein)