diff options
Diffstat (limited to 'roles/dyndns')
| -rw-r--r-- | roles/dyndns/files/DIGITALOCEAN_TOKEN | 9 | ||||
| -rw-r--r-- | roles/dyndns/tasks/main.yml | 72 |
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 |
