summaryrefslogtreecommitdiff
path: root/roles/dyndns
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-28 15:23:36 +0100
committerJoe Carstairs <me@joeac.net>2026-08-28 15:23:36 +0100
commit4931117343a3105749b4a3698dd24c824a505441 (patch)
treefd4c10ac16fc37e694bea8fced8eb5aea55cc966 /roles/dyndns
parent2a15e073bceaaf0765343dd57931c85cada6f89c (diff)
ovh-ify dyndns
Diffstat (limited to 'roles/dyndns')
-rw-r--r--roles/dyndns/files/DIGITALOCEAN_TOKEN9
-rw-r--r--roles/dyndns/tasks/main.yml75
-rw-r--r--roles/dyndns/templates/dyndns.zone4
3 files changed, 11 insertions, 77 deletions
diff --git a/roles/dyndns/files/DIGITALOCEAN_TOKEN b/roles/dyndns/files/DIGITALOCEAN_TOKEN
deleted file mode 100644
index 7f85a33..0000000
--- a/roles/dyndns/files/DIGITALOCEAN_TOKEN
+++ /dev/null
@@ -1,9 +0,0 @@
-$ANSIBLE_VAULT;1.2;AES256;ansible
-32323233343662343033613265383639303739386139363735646133633435393261346466666530
-3031303363663639343163633164393335663639353165300a373961376339336565353630303566
-32616562373263363365656531353633663830343633356462396464626164306337656665326463
-3336666530656539330a303238353335313130313130653138663266393430646662663066663036
-37626630396438336136303032633439323436323132616665353938373139353530613539366632
-39653161363765376262393933666163363230333037383033666138373439623838643833633463
-38393437353830356362393439366461623231653437613462666466643563323933366237313366
-33613166633665363238
diff --git a/roles/dyndns/tasks/main.yml b/roles/dyndns/tasks/main.yml
index e157644..9547f1a 100644
--- a/roles/dyndns/tasks/main.yml
+++ b/roles/dyndns/tasks/main.yml
@@ -1,72 +1,11 @@
-- name: Fetch digitalocean_dyndns source
- ansible.builtin.git:
- repo: git://git.joeac.net/digitalocean_dyndns.git
- dest: /usr/local/lib/digitalocean_dyndns
-
-- name: Mark get_ip_addr.sh executable
- ansible.builtin.file:
- path: /usr/local/lib/digitalocean_dyndns/get_ip_addr.sh
- owner: joeac.net
- group: joeac.net
- mode: "775"
-
-- name: Mark dyndns.sh executable
- ansible.builtin.file:
- path: /usr/local/lib/digitalocean_dyndns/dyndns.sh
- owner: joeac.net
- group: joeac.net
- mode: "775"
-
-- name: Symlink get_ip_addr.sh
- ansible.builtin.file:
- src: /usr/local/lib/digitalocean_dyndns/get_ip_addr.sh
- dest: /usr/bin/get_ip_addr.sh
- owner: joeac.net
- group: joeac.net
- state: link
-
-- name: Symlink dyndns.sh
- ansible.builtin.file:
- src: /usr/local/lib/digitalocean_dyndns/dyndns.sh
- dest: /usr/bin/dyndns.sh
- owner: joeac.net
- group: joeac.net
- state: link
-
-- name: Create config directory
- ansible.builtin.file:
- path: /etc/digitalocean_dyndns
- state: directory
+- name: Install DynDNS zone file
+ ansible.builtin.template:
+ src: dyndns.zone
+ dest: "{{ ovh_domain_zone_replace_records_directory }}/dyndns.zone"
mode: "644"
-- name: Create cache directory
- ansible.builtin.file:
- path: /var/digitalocean_dyndns
- state: directory
- mode: "666"
-
-- name: Create log directory
- ansible.builtin.file:
- path: /var/log/digitalocean_dyndns
- state: directory
- mode: "666"
-
-- name: Copy DIGITALOCEAN_TOKEN
- ansible.builtin.copy:
- src: DIGITALOCEAN_TOKEN
- dest: /etc/digitalocean_dyndns/DIGITALOCEAN_TOKEN
- mode: "640"
-
-- name: Install daily crontabs for dyndns (IPv4)
- loop: "{{ subdomains | map(attribute='name') }}"
- ansible.builtin.cron:
- special_time: daily
- name: daily crontab for dyndns for {{ item }}.joeac.net (IPv4)
- job: CACHE_DIR=/var/digitalocean_dyndns CONFIG_DIR=/etc/digitalocean_dyndns dyndns.sh 4 {{ item }}.joeac.net >> /var/log/digitalocean_dyndns/{{ item }}.joeac.net.ipv4.log
-
-- name: Install daily crontabs for dyndns (IPv6)
- loop: "{{ subdomains | map(attribute='name') }}"
+- name: Install daily crontabs for DynDNS
ansible.builtin.cron:
special_time: daily
- name: daily crontab for dyndns for {{ item }}.joeac.net (IPv6)
- job: CACHE_DIR=/var/digitalocean_dyndns CONFIG_DIR=/etc/digitalocean_dyndns CONN_DEVICE_NAME={{ ansible_facts.default_ipv4.alias }} dyndns.sh 6 {{ item }}.joeac.net >> /var/log/digitalocean_dyndns/{{ item }}.joeac.net.ipv6.log
+ name: daily crontab for DynDNS
+ job: update_ovhcloud_domain_zone >> {{ ovh_domain_zone_log_directory }}/cron.log
diff --git a/roles/dyndns/templates/dyndns.zone b/roles/dyndns/templates/dyndns.zone
new file mode 100644
index 0000000..c3a7e6a
--- /dev/null
+++ b/roles/dyndns/templates/dyndns.zone
@@ -0,0 +1,4 @@
+{% for subdomain in ( subdomains | rejectattr("service", "none") ) %}
+{{ subdomain.name }} A {{ router.wan.ipv4 }} {{ dns_default_ttl }}
+{{ subdomain.name }} AAAA {{ ansible_facts.default_ipv6.address }} {{ dns_default_ttl }}
+{% endfor %}