damex.cloudflare.cloudflare_dns role – Ensure Cloudflare DNS.

Note

This role is part of the damex.cloudflare collection (version 1.0.6).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it use: ansible-galaxy collection install damex.cloudflare.

To use it in a playbook, specify: damex.cloudflare.cloudflare_dns.

Entry point main – Ensure Cloudflare DNS.

Synopsis

  • Ensure Cloudflare DNS records.

Parameters

Parameter

Comments

cloudflare_dns_account_api_key

string

Cloudflare account API key.

cloudflare_dns_account_email

string

Cloudflare account email.

cloudflare_dns_api_token

string

Cloudflare API token.

cloudflare_dns_default_record_proxied

boolean

Default record proxied state.

Choices:

  • false

  • true

cloudflare_dns_default_record_state

string

Default record state.

Choices:

  • "absent"

  • "present"

cloudflare_dns_default_record_ttl

integer

Default record TTL.

cloudflare_dns_zones

list / elements=dictionary / required

Zones to manage DNS records for.

a_records

list / elements=dictionary

A records.

name

string / required

Record name.

proxied

boolean

Cloudflare proxy.

Choices:

  • false

  • true

state

string

Record state.

Choices:

  • "absent"

  • "present"

ttl

integer

TTL in seconds.

value

string

IPv4 address.

account_api_key

string

Cloudflare account API key.

account_email

string

Cloudflare account email.

api_token

string

Cloudflare API token.

cname_records

list / elements=dictionary

CNAME records.

name

string / required

Record name.

proxied

boolean

Cloudflare proxy.

Choices:

  • false

  • true

state

string

Record state.

Choices:

  • "absent"

  • "present"

ttl

integer

TTL in seconds.

value

string

Target hostname.

mx_records

list / elements=dictionary

MX records.

name

string / required

Record name.

priority

integer

MX priority.

state

string

Record state.

Choices:

  • "absent"

  • "present"

ttl

integer

TTL in seconds.

value

string

Mail server hostname.

name

string / required

Zone domain name.

txt_records

list / elements=dictionary

TXT records.

name

string / required

Record name.

state

string

Record state.

Choices:

  • "absent"

  • "present"

ttl

integer

TTL in seconds.

value

string

TXT content.

Examples

- name: Ensure cloudflare dns
  hosts: all
  tasks:
    - name: Ensure cloudflare dns
      ansible.builtin.import_role:
        name: damex.cloudflare.cloudflare_dns
      vars:
        cloudflare_dns_api_token: "{{ cloudflare_api_token }}"
        cloudflare_dns_zones:
          - name: example.com
            a_records:
              - name: www
                value: 192.0.2.1
            mx_records:
              - name: example.com
                value: mail.example.com
                priority: 10