ansible-role-cloudflare-ddns/README.md
2022-08-24 11:28:01 +02:00

2.2 KiB

Role Name

cloudflare-ddns - Install cloudflare DDNS docker image.

This role helps you push your public IP address on Cloudflare DNS, so your self-hosted sites can be accessed.

Role Variables

This role uses the variables listed below, along with default values (see defaults/main.yml).

You can specify the docker container name and the image version to be used. You can also specify the docker volume where the container should store its relevant data

dns_container_name: "cloudflare-dns"
dns_image_version: "latest"
dns_volume_config: "/tmp"

The dns_domains variable contains credentials and domain definitions. Credentials are specified like so:

dns_domains:
  auth:
    scopedToken: QPExdfoNLwndJPDbt4nK1-yF1z_srC8D0m6-Gv_h

This role allows you to set up DDNS for multiple domains:

dns_domains:
  domains:
  - name: foo.example.com
    type: A
    proxied: true
    create: true
    zoneId: JBFRZWzhTKtRFWgu3X7f3YLX
  - name: bar.example.com
    type: A
    proxied: true
    create: true
    zoneId: JBFRZWzhTKtRFWgu3X7f3YLY

All items declared into dns_domains are converted to the necessary configuration file via the config.yaml.j2 template.

If you want more details on which parameters you can add to dns_domains, please see the container's documentation

Example Playbook

You can see a full example (with dummy vars too!) below. It configures two sub-domains as A records:

- hosts: servers
  vars:
    dns_container_name: "cloudflare-dns"
    dns_image_version: "latest"
    dns_volume_config: "/tmp"
    dns_domains:
      auth:
        scopedToken: QPExdfoNLwndJPDbt4nK1-yF1z_srC8D0m6-Gv_h
      domains:
      - name: foo.example.com
        type: A
        proxied: true
        create: true
        zoneId: JBFRZWzhTKtRFWgu3X7f3YLX
      - name: bar.example.com
        type: A
        proxied: true
        create: true
        zoneId: JBFRZWzhTKtRFWgu3X7f3YLY

  roles:
      - 'laurivan.cloudflare_ddns'

License

MIT

Author Information

This role was created in 2022 by Laur Ivan.