community.general.cloudflare_dns – Manage Cloudflare DNS records¶
Note
This plugin is part of the community.general collection (version 2.5.1).
To install it use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.cloudflare_dns
.
Synopsis¶
Manages dns records via the Cloudflare API, see the docs: https://api.cloudflare.com/.
Requirements¶
The below requirements are needed on the host that executes this module.
python >= 2.6
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
account_api_key
string
|
Account API key.
Required for api keys authentication.
You can obtain your API key from the bottom of the Cloudflare 'My Account' page, found here: https://dash.cloudflare.com/.
aliases: account_api_token |
|
account_email
string
|
Account email. Required for API keys authentication.
|
|
algorithm
integer
|
Algorithm number.
Required for
type=DS and type=SSHFP when state=present . |
|
api_token
string
added in 0.2.0 of community.general
|
API token.
Required for api token authentication.
You can obtain your API token from the bottom of the Cloudflare 'My Account' page, found here: https://dash.cloudflare.com/.
Can be specified in
CLOUDFLARE_TOKEN environment variable since community.general 2.0.0. |
|
cert_usage
integer
|
|
Certificate usage number.
Required for
type=TLSA when state=present . |
hash_type
integer
|
|
Hash type number.
Required for
type=DS , type=SSHFP and type=TLSA when state=present . |
key_tag
integer
|
DNSSEC key tag.
Needed for
type=DS when state=present . |
|
port
integer
|
Service port.
Required for
type=SRV and type=TLSA . |
|
priority
integer
|
Default: 1
|
Record priority.
Required for
type=MX and type=SRV |
proto
string
|
Service protocol. Required for
type=SRV and type=TLSA .Common values are TCP and UDP.
Before Ansible 2.6 only TCP and UDP were available.
|
|
proxied
boolean
|
|
Proxy through Cloudflare network or just use DNS.
|
record
string
|
Default: "@"
|
Record to add.
Required if
state=present .Default is
@ (e.g. the zone name).aliases: name |
selector
integer
|
|
Selector number.
Required for
type=TLSA when state=present . |
service
string
|
Record service.
Required for type=SRV.
|
|
solo
boolean
|
|
Whether the record should be the only one for that record type and record name.
Only use with
state=present .This will delete all other records with the same record name and type.
|
state
string
|
|
Whether the record(s) should exist or not.
|
timeout
integer
|
Default: 30
|
Timeout for Cloudflare API calls.
|
ttl
integer
|
Default: 1
|
The TTL to give the new record.
Must be between 120 and 2,147,483,647 seconds, or 1 for automatic.
|
type
string
|
|
The type of DNS record to create. Required if
state=present .type=DS , type=SSHFP and type=TLSA added in Ansible 2.7. |
value
string
|
The record value.
Required for
state=present .aliases: content |
|
weight
integer
|
Default: 1
|
Service weight.
Required for
type=SRV . |
zone
string
/ required
|
The name of the Zone to work with (e.g. "example.com").
The Zone must already exist.
aliases: domain |
Examples¶
- 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 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: yes
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 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
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Authors¶
Michael Gruener (@mgruener)