community.general.nsupdate 模块 – 管理 DNS 记录

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您正在使用 ansible 包,则您可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:community.general.nsupdate

概要

  • 使用 DDNS 更新创建、更新和删除 DNS 记录

要求

执行此模块的主机需要以下要求。

  • dnspython

参数

参数

注释

key_algorithm

字符串

指定 key_secret 使用的密钥算法。

选项

  • "HMAC-MD5.SIG-ALG.REG.INT"

  • "hmac-md5" ← (默认)

  • "hmac-sha1"

  • "hmac-sha224"

  • "hmac-sha256"

  • "hmac-sha384"

  • "hmac-sha512"

key_name

字符串

使用 TSIG 密钥名称对 DNS server 进行身份验证

key_secret

字符串

使用与 key_name 关联的 TSIG 密钥密钥对 server 进行身份验证

port

整数

连接到 server 时使用此 TCP 端口。

默认值: 53

protocol

字符串

设置传输协议 (TCP 或 UDP)。TCP 是推荐的,也是更可靠的选项。

选项

  • "tcp" ← (默认)

  • "udp"

record

字符串 / 必需

设置要修改的 DNS 记录。如果省略 zone,则此记录必须是绝对的(以点结尾)。

server

字符串 / 必需

在此服务器上应用 DNS 修改,由 IPv4 或 IPv6 地址指定。

state

字符串

管理 DNS 记录。

选项

  • "present" ← (默认)

  • "absent"

ttl

整数

设置记录 TTL。

默认值: 3600

type

字符串

设置记录类型。

默认值: "A"

value

列表 / 元素=字符串

设置记录值。

zone

字符串

将在此 zone 上修改 DNS 记录。

省略时,将查询 DNS 以尝试查找正确的区域。

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

处于差异模式时,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

示例

- name: Add or modify ansible.example.org A to 192.168.1.1"
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "ansible"
    value: "192.168.1.1"

- name: Add or modify ansible.example.org A to 192.168.1.1, 192.168.1.2 and 192.168.1.3"
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "ansible"
    value: ["192.168.1.1", "192.168.1.2", "192.168.1.3"]

- name: Remove puppet.example.org CNAME
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "puppet"
    type: "CNAME"
    state: absent

- name: Add 1.1.168.192.in-addr.arpa. PTR for ansible.example.org
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    record: "1.1.168.192.in-addr.arpa."
    type: "PTR"
    value: "ansible.example.org."
    state: present

- name: Remove 1.1.168.192.in-addr.arpa. PTR
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    record: "1.1.168.192.in-addr.arpa."
    type: "PTR"
    state: absent

返回值

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

描述

changed

字符串

如果模块已修改记录

返回:成功

dns_rc

整数

dnspython 返回代码

返回:始终

示例: 4

dns_rc_str

字符串

dnspython 返回代码(字符串表示)

返回:始终

示例: "REFUSED"

record

字符串

DNS 记录

返回:成功

示例: "ansible"

ttl

整数

DNS 记录 TTL

返回:成功

示例: 86400

type

字符串

DNS 记录类型

返回:成功

示例: "CNAME"

value

列表 / 元素=字符串

DNS 记录值

返回:成功

示例: ["192.168.1.1"]

zone

字符串

DNS 记录区域

返回:成功

示例: "example.org."

作者

  • Loic Blot (@nerzhul)