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 记录集。

  • 此模块替换了 community.dns 2.0.0 之前的 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 且与 prefixrecord 匹配的记录。

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

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

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

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

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

选项

  • "replace" ← (默认)

  • "keep_and_fail"

  • "keep_and_warn"

  • "keep"

prefix

字符串

community.dns 0.2.0 中添加

DNS 记录的前缀。

这是 recordzone_name 之前的部分。例如,如果要修改的记录是区域 example.comwww.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。之前,默认值为 octaldecimal 值与 RFC 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=presenton_existing 不是 replace,则必须指定此值。

如果 state=absenton_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

返回值

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

描述

zone_id

整数

community.dns 0.2.0 中添加

区域的 ID。

返回:成功

示例: 23

作者

  • Felix Fontein (@felixfontein)