diff options
| author | Joe Carstairs <me@joeac.net> | 2026-07-25 13:27:19 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-07-25 13:27:19 +0100 |
| commit | f93ee559bc1080182a4c466c97e922f53e69783a (patch) | |
| tree | a01f45b73b4bc202af48ce49dad6876f314840c3 /ansible/roles | |
| parent | 6cd86414799c98180ee49357ab522a72e4dc4cd5 (diff) | |
moves dyndns config management to ansible
Diffstat (limited to 'ansible/roles')
| -rw-r--r-- | ansible/roles/dyndns/tasks/main.yml | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/ansible/roles/dyndns/tasks/main.yml b/ansible/roles/dyndns/tasks/main.yml new file mode 100644 index 0000000..ed547d2 --- /dev/null +++ b/ansible/roles/dyndns/tasks/main.yml @@ -0,0 +1,72 @@ +- name: Fetch digitalocean_dyndns source + ansible.builtin.git: + repo: https://git.joeac.net/joeac/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 + 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: "644" + +- name: Install daily crontabs for dyndns (IPv4) + loop: "{{ subdomains }}" + 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 }}" + 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={{ connection_device_name }} dyndns.sh 6 {{ item }}.joeac.net >> /var/log/digitalocean_dyndns/{{ item }}.joeac.net.ipv6.log |
