diff options
| author | Joe Carstairs <me@joeac.net> | 2026-08-28 15:23:36 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-08-28 15:23:36 +0100 |
| commit | 4931117343a3105749b4a3698dd24c824a505441 (patch) | |
| tree | fd4c10ac16fc37e694bea8fced8eb5aea55cc966 /roles/dyndns | |
| parent | 2a15e073bceaaf0765343dd57931c85cada6f89c (diff) | |
ovh-ify dyndns
Diffstat (limited to 'roles/dyndns')
| -rw-r--r-- | roles/dyndns/files/DIGITALOCEAN_TOKEN | 9 | ||||
| -rw-r--r-- | roles/dyndns/tasks/main.yml | 75 | ||||
| -rw-r--r-- | roles/dyndns/templates/dyndns.zone | 4 |
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 %} |
