community.general.dnsmadeeasy 模块 – 与 dnsmadeeasy.com(一个 DNS 托管服务)交互

注意

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

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

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

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

概要

要求

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

  • hashlib

  • hmac

参数

参数

注释

account_key

字符串 / 必需

帐户 API 密钥。

account_secret

字符串 / 必需

帐户密钥。

autoFailover

布尔值

如果为真,则故障转移后手动回退到主 IP 地址。

如果为假,则故障转移后自动回退到主 IP 地址。

选项

  • false ← (默认)

  • true

contactList

字符串

监控将通知的联系人列表的名称或 ID。

默认值 '' 表示帐户所有者。

domain

字符串 / 必需

要使用的域。可以是域名(例如,“mydomain.com”)或 DNS Made Easy 中域的数字 ID(例如,“839989”),以加快解析速度。

failover

布尔值

如果 true,则添加或更改故障转移。这仅适用于 A 记录。

选项

  • false ← (默认)

  • true

httpFile

字符串

监控查询 HTTP 或 HTTPS 的 Fqdn 处的文件。

httpFqdn

字符串

监控使用的完全限定域名。

httpQueryString

字符串

监控查询 HTTP 或 HTTPS 的 httpFile 中的字符串。

ip1

字符串

故障转移的主 IP 地址。

如果添加或更改监控或故障转移,则需要此参数。

ip2

字符串

故障转移的辅助 IP 地址。

如果添加或更改故障转移,则需要此参数。

ip3

字符串

故障转移的三级 IP 地址。

ip4

字符串

故障转移的四级 IP 地址。

ip5

字符串

故障转移的五级 IP 地址。

maxEmails

整数

监控发送到联系人列表的电子邮件数量。

默认值: 1

monitor

布尔值

如果 true,则添加或更改监控。这仅适用于 A 记录。

选项

  • false ← (默认)

  • true

port

整数

监控使用的端口。

默认值: 80

protocol

字符串

监控使用的协议。

选项

  • "TCP"

  • "UDP"

  • "HTTP" ← (默认)

  • "DNS"

  • "SMTP"

  • "HTTPS"

record_name

字符串

要获取/创建/删除/更新的记录名称。如果未指定 record_name;则无论 state 参数如何,所有域记录都将在“result”中返回。

record_ttl

整数

记录的“生存时间”。记录在 DNS 服务器中缓存的秒数。

默认值: 1800

record_type

字符串

记录类型。

选项

  • "A"

  • "AAAA"

  • "CNAME"

  • "ANAME"

  • "HTTPRED"

  • "MX"

  • "NS"

  • "PTR"

  • "SRV"

  • "TXT"

record_value

字符串

记录值。HTTPRED:<重定向 URL>,MX:<优先级> <目标名称>,NS:<名称服务器>,PTR:<目标名称>,SRV:<优先级> <权重> <端口> <目标名称>,TXT:<文本值>“

如果未指定 record_value;则不会进行任何更改,并且记录将在‘result’中返回(换句话说,此模块可用于获取记录的当前 id、类型和 ttl)。

sandbox

布尔值

决定是否应使用沙盒 API。否则(默认情况下)将使用 DNS Made Easy 的生产 API。

选项

  • false ← (默认)

  • true

sensitivity

字符串

监控在发生故障转移之前执行的检查次数,其中低 = 8,中 = 5,高 = 3。

选项

  • "低"

  • "中" ← (默认)

  • "高"

state

字符串 / 必需

记录是否存在

选项

  • “存在”

  • “不存在”

系统描述

字符串

监控器使用的描述。

默认值: ""

验证证书

布尔值

如果 false,则不会验证 SSL 证书。这仅应在使用自签名证书的个人控制站点上使用。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:不支持

可以在 check_mode 下运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:不支持

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

备注

注意

  • DNS Made Easy 服务要求与 API 交互的机器设置正确的日期和时间区域。请使用 NTP 确保您的时间与实际时间相差几秒钟以内。

  • 当 'state' 设置为 'present' 时,此模块在“result”元素中返回记录和监控器。这些值可以在您的剧本中注册和使用。

  • 只有 A 记录可以具有监控器或故障转移。

  • 要添加故障转移,需要 'failover'、'autoFailover'、'port'、'protocol'、'ip1' 和 'ip2' 选项。

  • 要添加监控器,需要 'monitor'、'port'、'protocol'、'maxEmails'、'systemDescription' 和 'ip1' 选项。

  • 监控器和故障转移将共享 'port'、'protocol' 和 'ip1' 选项。

示例

- name: Fetch my.com domain records
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
  register: response

- name: Create a record
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1

- name: Update the previously created record
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_value: 192.0.2.23

- name: Fetch a specific record
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
  register: response

- name: Delete a record
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    record_type: A
    state: absent
    record_name: test

- name: Add a failover
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    failover: true
    ip1: 127.0.0.2
    ip2: 127.0.0.3

- name: Add a failover
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    failover: true
    ip1: 127.0.0.2
    ip2: 127.0.0.3
    ip3: 127.0.0.4
    ip4: 127.0.0.5
    ip5: 127.0.0.6

- name: Add a monitor
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    monitor: true
    ip1: 127.0.0.2
    protocol: HTTP  # default
    port: 80  # default
    maxEmails: 1
    systemDescription: Monitor Test A record
    contactList: my contact list

- name: Add a monitor with http options
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    monitor: true
    ip1: 127.0.0.2
    protocol: HTTP  # default
    port: 80  # default
    maxEmails: 1
    systemDescription: Monitor Test A record
    contactList: 1174  # contact list id
    httpFqdn: http://my.com
    httpFile: example
    httpQueryString: some string

- name: Add a monitor and a failover
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    failover: true
    ip1: 127.0.0.2
    ip2: 127.0.0.3
    monitor: true
    protocol: HTTPS
    port: 443
    maxEmails: 1
    systemDescription: monitoring my.com status
    contactList: emergencycontacts

- name: Remove a failover
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    failover: false

- name: Remove a monitor
  community.general.dnsmadeeasy:
    account_key: key
    account_secret: secret
    domain: my.com
    state: present
    record_name: test
    record_type: A
    record_value: 127.0.0.1
    monitor: false

作者

  • Brice Burgess (@briceburg)