cloudflare_dns - manage Cloudflare DNS records
New in version 2.1.
Synopsis
- Manages dns records via the Cloudflare API, see the docs: https://api.cloudflare.com/
Requirements (on host that executes module)
- python >= 2.6
Options
| parameter | required | default | choices | comments |
|---|---|---|---|---|
| account_api_token | yes | Account API token. You can obtain your API key from the bottom of the Cloudflare 'My Account' page, found here: https://www.cloudflare.com/a/account | ||
| account_email | yes | Account email. | ||
| port | no | Service port. Required for type=SRV
| ||
| priority | no | 1 | Record priority. Required for type=MX and type=SRV
| |
| proto | no |
| Service protocol. Required for type=SRV
| |
| proxied (added in 2.3)
| no | Proxy through cloudflare network or just use DNS | ||
| record | no | @ | Record to add. Required if state=present. Default is @ (e.g. the zone name)aliases: name | |
| service | no | Record service. Required for type=SRV
| ||
| solo | no | 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 | no | present |
| Whether the record(s) should exist or not |
| timeout | no | 30 | Timeout for Cloudflare API calls | |
| ttl | no | 1 (automatic) | The TTL to give the new record. Must be between 120 and 2,147,483,647 seconds, or 1 for automatic. | |
| type | no |
| The type of DNS record to create. Required if state=present
| |
| value | no | The record value. Required for state=present
aliases: content | ||
| weight | no | 1 | Service weight. Required for type=SRV
| |
| zone | yes | The name of the Zone to work with (e.g. "example.com"). The Zone must already exist. aliases: domain |
Examples
# create a test.my.com A record to point to 127.0.0.1
- cloudflare_dns:
zone: my.com
record: test
type: A
value: 127.0.0.1
account_email: [email protected]
account_api_token: dummyapitoken
register: record
# create a my.com CNAME record to example.com
- cloudflare_dns:
zone: my.com
type: CNAME
value: example.com
state: present
account_email: [email protected]
account_api_token: dummyapitoken
# change it's ttl
- cloudflare_dns:
zone: my.com
type: CNAME
value: example.com
ttl: 600
state: present
account_email: [email protected]
account_api_token: dummyapitoken
# and delete the record
- cloudflare_dns:
zone: my.com
type: CNAME
value: example.com
state: absent
account_email: [email protected]
account_api_token: dummyapitoken
# create a my.com CNAME record to example.com and proxy through cloudflare's network
- cloudflare_dns:
zone: my.com
type: CNAME
value: example.com
state: present
proxied: yes
account_email: [email protected]
account_api_token: dummyapitoken
# create TXT record "test.my.com" with value "unique value"
# delete all other TXT records named "test.my.com"
- cloudflare_dns:
domain: my.com
record: test
type: TXT
value: unique value
state: present
solo: true
account_email: [email protected]
account_api_token: dummyapitoken
# create a SRV record _foo._tcp.my.com
- cloudflare_dns:
domain: my.com
service: foo
proto: tcp
port: 3500
priority: 10
weight: 20
type: SRV
value: fooserver.my.com
Return Values
Common return values are documented here Return Values, the following are the fields unique to this module:
| name | description | returned | type | sample | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| record | dictionary containing the record data | success, except on record deletion | complex | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| contains: |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Status
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/cloudflare_dns_module.html