|
|
||
|---|---|---|
| defaults | ||
| handlers | ||
| meta | ||
| molecule/default | ||
| tasks | ||
| templates | ||
| tests | ||
| vars | ||
| .ansible-lint | ||
| .gitignore | ||
| .travis.yml | ||
| .yamllint | ||
| README.md | ||
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.