community.dns.hosttech_dns_record_set 模块 – 在 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_set

community.dns 2.0.0 中的新功能

概要

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

  • 此模块替换了 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 互斥。

on_existing

字符串

此选项定义如果记录集已存在,但与指定的记录集不同时的行为。对于此比较,valuettl 用于所有类型为 type 并且与 prefix resp. record 匹配的记录。

如果设置为 replace,则将更新记录(state=present)或删除记录(state=absent)。这是旧的 overwrite=true 行为。

如果设置为 keep_and_fail,则模块将失败并且不会修改记录。如果 state=present,则这是旧的 overwrite=false 行为。

如果设置为 keep_and_warn,则模块将发出警告并且不会修改记录。

如果设置为 keep,则模块将不会修改记录。如果 state=absent,则这是旧的 overwrite=false 行为。

如果 state=absent 且值不是 replace,则必须指定 value

选择

  • "replace" ←(默认)

  • "keep_and_fail"

  • "keep_and_warn"

  • "keep"

prefix

字符串

在 community.dns 0.2.0 中添加

DNS 记录的前缀。

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

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

record

字符串

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

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

state

字符串 / 必需

指定资源记录的状态。

选择

  • "present"

  • "absent"

ttl

整数

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

默认值: 3600

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"

  • "MX"

  • "NS"

  • "PTR"

  • "SPF"

  • "SRV"

  • "TXT"

value

列表 / 元素=字符串

创建 DNS 记录时的新值。

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

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

如果 state=present 或当 on_existing 不是 replace 时,必须指定此项。

如果 state=absent 并且 on_existing=replace,则将忽略此项。

zone_id

整数

在 community.dns 0.2.0 中添加

要修改的 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 new.foo.com as an A record with 3 IPs
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 1.1.1.1,2.2.2.2,3.3.3.3
    hosttech_token: access_token

- name: Update new.foo.com as an A record with a list of 3 IPs
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value:
      - 1.1.1.1
      - 2.2.2.2
      - 3.3.3.3
    hosttech_token: access_token

- name: Retrieve the details for new.foo.com
  community.dns.hosttech_dns_record_set_info:
    zone_name: foo.com
    record: new.foo.com
    type: A
    hosttech_username: foo
    hosttech_password: bar
  register: rec

- name: Delete new.foo.com A record using the results from the facts retrieval command
  community.dns.hosttech_dns_record_set:
    state: absent
    zone_name: foo.com
    record: "{{ rec.set.record }}"
    ttl: "{{ rec.set.ttl }}"
    type: "{{ rec.set.type }}"
    value: "{{ rec.set.value }}"
    hosttech_username: foo
    hosttech_password: bar

- name: Add an AAAA record
  # Note that because there are colons in the value that the IPv6 address must be quoted!
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: localhost.foo.com
    type: AAAA
    ttl: 7200
    value: "::1"
    hosttech_token: access_token

- name: Add a TXT record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: localhost.foo.com
    type: TXT
    ttl: 7200
    value: 'bar'
    hosttech_username: foo
    hosttech_password: bar

- name: Remove the TXT record
  community.dns.hosttech_dns_record_set:
    state: absent
    zone_name: foo.com
    record: localhost.foo.com
    type: TXT
    ttl: 7200
    value: 'bar'
    hosttech_username: foo
    hosttech_password: bar

- name: Add a CAA record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: foo.com
    type: CAA
    ttl: 3600
    value:
    - '128 issue "letsencrypt.org"'
    - '128 iodef "mailto:[email protected]"'
    hosttech_token: access_token

- name: Add an MX record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: foo.com
    type: MX
    ttl: 3600
    value:
    - "10 mail.foo.com"
    hosttech_token: access_token

- name: Add a CNAME record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: bla.foo.com
    record: foo.com
    type: CNAME
    ttl: 3600
    value:
    - foo.foo.com
    hosttech_username: foo
    hosttech_password: bar

- name: Add a PTR record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.foo.com
    record: foo.com
    type: PTR
    ttl: 3600
    value:
    - foo.foo.com
    hosttech_token: access_token

- name: Add an SPF record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: foo.com
    type: SPF
    ttl: 3600
    value:
    - "v=spf1 a mx ~all"
    hosttech_username: foo
    hosttech_password: bar

- name: Add a PTR record
  community.dns.hosttech_dns_record_set:
    state: present
    zone_name: foo.com
    record: foo.com
    type: PTR
    ttl: 3600
    value:
    - "10 100 3333 service.foo.com"
    hosttech_token: access_token

返回值

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

Key

描述

zone_id

整数

在 community.dns 0.2.0 中添加

区域的 ID。

已返回: 成功

示例: 23

作者

  • Felix Fontein (@felixfontein)