community.general.cloudflare_dns 模块 – 管理 Cloudflare DNS 记录

注意

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

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

要安装它,请使用: ansible-galaxy collection install community.general

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

概要

参数

参数

注释

account_api_key

别名:account_api_token

字符串

账户 API 密钥。

API 密钥身份验证需要。

您可以在 Cloudflare“我的帐户”页面底部获取您的 API 密钥,网址为: https://dash.cloudflare.com/

account_email

字符串

账户邮箱。API 密钥身份验证需要。

algorithm

整数

算法编号。

type=DStype=SSHFPstate=present 时需要。

api_token

字符串

在 community.general 0.2.0 中添加

API 令牌。

API 令牌身份验证需要。

您可以在 Cloudflare“我的帐户”页面底部获取您的 API 令牌,网址为: https://dash.cloudflare.com/

自 community.general 2.0.0 起,可以在 CLOUDFLARE_TOKEN 环境变量中指定。

cert_usage

整数

证书使用编号。

type=TLSAstate=present 时需要。

选项

  • 0

  • 1

  • 2

  • 3

comment

字符串

在 community.general 10.1.0 中添加

关于 DNS 记录的注释或说明。

flag

整数

在 community.general 8.0.0 中添加

颁发者关键标志。

type=CAAstate=present 时需要。

选项

  • 0

  • 1

hash_type

整数

哈希类型编号。

type=DStype=SSHFPtype=TLSAstate=present 时需要。

选项

  • 1

  • 2

key_tag

整数

DNSSEC 密钥标签。

type=DSstate=present 时需要。

port

整数

服务端口。

type=SRVtype=TLSA 时需要。

priority

整数

记录优先级。

type=MXtype=SRV 时需要。

默认值: 1

proto

字符串

服务协议。对于type=SRVtype=TLSA是必需的。

常用值为TCP和UDP。

proxied

布尔值

通过Cloudflare网络代理或仅使用DNS。

选项

  • false ← (默认)

  • true

记录

别名:名称

字符串

要添加的记录。

如果state=present,则需要此参数。

默认为@(即区域名称)。

默认值: "@"

selector

整数

选择器编号。

type=TLSAstate=present 时需要。

选项

  • 0

  • 1

service

字符串

记录服务。

对于type=SRV是必需的。

solo

布尔值

记录是否应该是该记录类型和记录名称的唯一记录。

仅与state=present一起使用。

这将删除所有其他具有相同记录名称和类型的记录。

选项

  • false

  • true

state

字符串

记录是否存在。

选项

  • "absent"

  • "present" ← (默认)

tag

字符串

在 community.general 8.0.0 中添加

CAA颁发限制。

type=CAAstate=present 时需要。

选项

  • "issue"

  • "issuewild"

  • "iodef"

tags

列表 / 元素=字符串

在 community.general 10.1.0 中添加

DNS记录的自定义标签。

timeout

整数

Cloudflare API调用的超时时间。

默认值: 30

ttl

整数

要赋予新记录的TTL。

必须介于120到2,147,483,647秒之间,或者为1表示自动。

默认值: 1

type

字符串

要创建的DNS记录类型。如果state=present,则需要此参数。

community.general 9.0.0版本已移除对SPF的支持,因为CloudFlare不再支持此记录类型。

选项

  • "A"

  • "AAAA"

  • "CNAME"

  • "DS"

  • "MX"

  • "NS"

  • "SRV"

  • "SSHFP"

  • "TLSA"

  • "CAA"

  • "TXT"

别名:内容

字符串

记录值。

如果state=present,则需要此参数。

weight

整数

服务权重。

对于type=SRV是必需的。

默认值: 1

区域

别名:域名

字符串 / 必填

要使用的区域名称(例如,“example.com”)。

区域必须已经存在。

属性

属性

支持

描述

check_mode

支持:完全支持

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

diff_mode

支持:不支持

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

示例

- name: Create a test.example.net A record to point to 127.0.0.1
  community.general.cloudflare_dns:
    zone: example.net
    record: test
    type: A
    value: 127.0.0.1
    account_email: [email protected]
    account_api_key: dummyapitoken
  register: record

- name: Create a record using api token
  community.general.cloudflare_dns:
    zone: example.net
    record: test
    type: A
    value: 127.0.0.1
    api_token: dummyapitoken

- name: Create a record with comment and tags
  community.general.cloudflare_dns:
    zone: example.net
    record: test
    type: A
    value: 127.0.0.1
    comment: Local test website
    tags:
    - test
    - local
    api_token: dummyapitoken

- name: Create a example.net CNAME record to example.com
  community.general.cloudflare_dns:
    zone: example.net
    type: CNAME
    value: example.com
    account_email: [email protected]
    account_api_key: dummyapitoken
    state: present

- name: Change its TTL
  community.general.cloudflare_dns:
    zone: example.net
    type: CNAME
    value: example.com
    ttl: 600
    account_email: [email protected]
    account_api_key: dummyapitoken
    state: present

- name: Delete the record
  community.general.cloudflare_dns:
    zone: example.net
    type: CNAME
    value: example.com
    account_email: [email protected]
    account_api_key: dummyapitoken
    state: absent

- name: Create a example.net CNAME record to example.com and proxy through Cloudflare's network
  community.general.cloudflare_dns:
    zone: example.net
    type: CNAME
    value: example.com
    proxied: true
    account_email: [email protected]
    account_api_key: dummyapitoken
    state: present

# This deletes all other TXT records named "test.example.net"
- name: Create TXT record "test.example.net" with value "unique value"
  community.general.cloudflare_dns:
    domain: example.net
    record: test
    type: TXT
    value: unique value
    solo: true
    account_email: [email protected]
    account_api_key: dummyapitoken
    state: present

- name: Create an SRV record _foo._tcp.example.net
  community.general.cloudflare_dns:
    domain: example.net
    service: foo
    proto: tcp
    port: 3500
    priority: 10
    weight: 20
    type: SRV
    value: fooserver.example.net

- name: Create a SSHFP record login.example.com
  community.general.cloudflare_dns:
    zone: example.com
    record: login
    type: SSHFP
    algorithm: 4
    hash_type: 2
    value: 9dc1d6742696d2f51ca1f1a78b3d16a840f7d111eb9454239e70db31363f33e1

- name: Create a TLSA record _25._tcp.mail.example.com
  community.general.cloudflare_dns:
    zone: example.com
    record: mail
    port: 25
    proto: tcp
    type: TLSA
    cert_usage: 3
    selector: 1
    hash_type: 1
    value: 6b76d034492b493e15a7376fccd08e63befdad0edab8e442562f532338364bf3

- name: Create a CAA record subdomain.example.com
  community.general.cloudflare_dns:
    zone: example.com
    record: subdomain
    type: CAA
    flag: 0
    tag: issue
    value: ca.example.com

- name: Create a DS record for subdomain.example.com
  community.general.cloudflare_dns:
    zone: example.com
    record: subdomain
    type: DS
    key_tag: 5464
    algorithm: 8
    hash_type: 2
    value: B4EB5AC4467D2DFB3BAF9FB9961DC1B6FED54A58CDFAA3E465081EC86F89BFAB

返回值

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

描述

record

复杂类型

包含记录数据的字典。

返回:成功,除非记录删除。

comment

字符串

在 community.general 10.1.0 中添加

关于 DNS 记录的注释或说明。

返回:成功

示例: "域名验证记录"

comment_modified_on

字符串

在 community.general 10.1.0 中添加

上次修改记录注释的时间。如果没有注释,则省略。

返回:成功

示例: "2024-01-01T05:20:00.12345Z"

content

字符串

记录内容(详细信息取决于记录类型)。

返回:成功

示例: "192.0.2.91"

created_on

字符串

记录创建时间。

返回:成功

示例: "2016-03-25T19:09:42.516553Z"

data

字典

附加的记录数据。

返回:如果类型是SRV、DS、SSHFP、TLSA或CAA,则返回成功。

示例: {"name": "jabber", "port": 8080, "priority": 10, "proto": "_tcp", "service": "_xmpp", "target": "jabberhost.sample.com", "weight": 5}

id

字符串

记录ID。

返回:成功

示例: "f9efb0549e96abcb750de63b38c9576e"

locked

布尔值

无可用文档。

返回:成功

示例: false

meta

字典

关于记录的额外Cloudflare特定信息。

返回:成功

示例: {"auto_added": false}

modified_on

字符串

记录修改日期。

返回:成功

示例: "2016-03-25T19:09:42.516553Z"

name

字符串

记录名称作为FQDN(对于SRV,包括_service和_proto)。

返回:成功

示例: "www.sample.com"

priority

整数

MX记录的优先级。

返回:如果类型是MX,则返回成功。

示例: 10

proxiable

布尔值

此记录是否可以通过Cloudflare进行代理。

返回:成功

示例: false

proxied

布尔值

记录是否通过Cloudflare进行代理。

返回:成功

示例: false

tags

列表 / 元素=字符串

在 community.general 10.1.0 中添加

DNS记录的自定义标签。

返回:成功

示例: ["production", "app"]

tags_modified_on

字符串

在 community.general 10.1.0 中添加

上次修改记录标签的时间。如果没有标签,则省略。

返回:成功

示例: "2025-01-01T05:20:00.12345Z"

ttl

整数

记录的生存时间。

返回:成功

示例: 300

type

字符串

记录类型。

返回:成功

示例: "A"

zone_id

字符串

包含记录的区域的ID。

返回:成功

示例: "abcede0bf9f0066f94029d2e6b73856a"

zone_name

字符串

包含记录的区域的名称。

返回:成功

示例: "sample.com"

作者

  • Michael Gruener (@mgruener)