community.dns.hosttech_dns_records 清单 - 从 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_records

community.dns 2.0.0 中的新功能

概要

  • 为了使 Ansible 能够将 YAML 文件识别为此插件的清单,清单文件必须包含 plugin: community.dns.hosttech_dns_records,并且其文件名必须以 hosttech_dns.yamlhosttech_dns.yml 结尾

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

  • 此插件允许从 Hosttech DNS 记录创建清单。

要求

在执行此清单的本地控制器节点上需要以下要求。

  • lxml

参数

参数

注释

过滤器

列表 / 元素=字典

在 community.dns 3.0.0 中添加

允许为此清单选择/取消选择主机的包含/排除过滤器列表。

过滤器按顺序处理,直到找到第一个匹配 filters[].excludefilters[].include 的过滤器。如果 filters[].exclude 匹配,则排除主机;如果 filters[].include 匹配,则包含主机。如果没有任何过滤器匹配,则包含主机。

排除

字符串

Jinja2 条件。如果它匹配主机,则该主机将被 排除

只能指定 filters[].excludefilters[].include 中的一个。

包含

字符串

Jinja2 条件。如果它匹配主机,则该主机将被 包含

只能指定 filters[].excludefilters[].include 中的一个。

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

配置

plugin

string / required

此插件的名称。对于此插件,应始终设置为 community.dns.hosttech_dns_records,以便识别其自身。

选项

  • "community.dns.hosttech_dns_records"

simple_filters

字典

筛选器值对的字典。

此选项在 community.dns 3.0.0 之前名为 filters。它在 community.dns 2.8.0 中从 filters 重命名为 simple_filters,并且旧名称在 community.dns 3.0.0 之前仍可用作别名。filters 现在用于其他用途。

默认值: {}

type

list / elements=string

要使用的记录类型的值。

选项

  • "A" ← (默认)

  • "AAAA" ← (默认)

  • "CAA"

  • "CNAME" ← (默认)

  • "MX"

  • "NS"

  • "PTR"

  • "SPF"

  • "SRV"

  • "TXT"

默认值: ["A", "AAAA", "CNAME"]

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

zone_id

any

要修改的 DNS 区域的 ID。

必须指定 zone_namezone_id 中的一个。

zone_name

别名:zone

字符串

要修改的 DNS 区域。

必须指定 zone_namezone_id 中的一个。

备注

注意

另请参阅

另请参阅

community.dns.hosttech_dns_record_set_info

检索 Hosttech DNS 服务中的记录集。

community.dns.hosttech_dns_record_info

检索 Hosttech DNS 服务中的记录。

示例

# filename must end with hosttech_dns.yaml or hosttech_dns.yml

plugin: community.dns.hosttech_dns_records
zone_name: domain.ch
simple_filters:
  type:
    - AAAA
filters:
  - include: >-
      '*.' not in inventory_hostname
  - exclude: true

# You can also configure the token by putting secret value into this file,
# but this is discouraged. Use a lookup like below, or leave it away and
# set it with the ANSIBLE_HOSTTECH_DNS_TOKEN environment variable.
hosttech_token: >-
    {{ (lookup('community.sops.sops', 'keys/hosttech.sops.yml') | from_yaml).hosttech_dns_token }}

作者

  • Markus Bergholz (@markuman)

  • Felix Fontein (@felixfontein)

提示

每个条目类型的配置条目都具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。