summaryrefslogtreecommitdiff
path: root/roles/dyndns
diff options
context:
space:
mode:
Diffstat (limited to 'roles/dyndns')
-rw-r--r--roles/dyndns/files/DIGITALOCEAN_TOKEN9
-rw-r--r--roles/dyndns/tasks/main.yml72
2 files changed, 81 insertions, 0 deletions
diff --git a/roles/dyndns/files/DIGITALOCEAN_TOKEN b/roles/dyndns/files/DIGITALOCEAN_TOKEN
new file mode 100644
index 0000000..7f85a33
--- /dev/null
+++ b/roles/dyndns/files/DIGITALOCEAN_TOKEN
@@ -0,0 +1,9 @@
+$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
new file mode 100644
index 0000000..198ef0d
--- /dev/null
+++ b/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: "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') }}"
+ 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