diff --git a/inventory.yml b/inventory.yml index beed07b..d9459f3 100644 --- a/inventory.yml +++ b/inventory.yml @@ -46,6 +46,16 @@ all: sudo: yes docker: yes + # Data for DD24 dyndns updates + dyndns_domain: "dyndns.n39.eu" + dyndns_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 65653833376630636530373933326362316164353965643732323634393934383764376563613063 + 6632333438636434376666666132313139393363366665380a353737326231613862333866323031 + 30353966366436613433363937643463613332643133643637643232633238373638303063646635 + 3132306530356431630a333538616466643933643230383165646362643738616237383937666332 + 3164 + hosts: tau.netz39.de: server_admin: "admin+tau@netz39.de" diff --git a/pottwal.yml b/pottwal.yml index 035052a..a4df212 100644 --- a/pottwal.yml +++ b/pottwal.yml @@ -28,6 +28,8 @@ vars: docker_data_root: "/srv/docker" - role: apache + - role: dd24-dyndns-cron + # variables are set in the inventory tasks: diff --git a/roles/dd24-dyndns-cron/defaults/main.yml b/roles/dd24-dyndns-cron/defaults/main.yml new file mode 100644 index 0000000..0f9336d --- /dev/null +++ b/roles/dd24-dyndns-cron/defaults/main.yml @@ -0,0 +1,5 @@ +# DD24 Cron configuration +--- +dyndns_domain: www.example.com +dyndns_password: yourpassword +dyndns_ip: auto diff --git a/roles/dd24-dyndns-cron/handlers/main.yml b/roles/dd24-dyndns-cron/handlers/main.yml new file mode 100644 index 0000000..49c802c --- /dev/null +++ b/roles/dd24-dyndns-cron/handlers/main.yml @@ -0,0 +1,10 @@ +# handlers file for cron-dd24-dyndns +--- +- name: reload cron + ansible.builtin.shell: + cmd: service cron reload + warn: no +# Use the shell call because the task sometimes has problems finding the service state +# service: +# name: cron +# state: restarted diff --git a/roles/dd24-dyndns-cron/tasks/main.yml b/roles/dd24-dyndns-cron/tasks/main.yml new file mode 100644 index 0000000..5060260 --- /dev/null +++ b/roles/dd24-dyndns-cron/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: Make sure cron and curl are installed + apt: + name: + - cron + - curl + state: present + +- name: Setup cron file for DD24 updates + ansible.builtin.template: + src: "templates/dd24-dyndns.cron.j2" + dest: "/etc/cron.d/dd24-dyndns" + owner: root + group: root + mode: "0644" + notify: reload cron + # There is ansible.builtin.cron, but this makes configuration much + # more complicated, so we stick to the template. diff --git a/roles/dd24-dyndns-cron/templates/dd24-dyndns.cron.j2 b/roles/dd24-dyndns-cron/templates/dd24-dyndns.cron.j2 new file mode 100644 index 0000000..e3119ab --- /dev/null +++ b/roles/dd24-dyndns-cron/templates/dd24-dyndns.cron.j2 @@ -0,0 +1,6 @@ +# /etc/cron.d/dd24-dyndns: Cron call to renew DynDNS entry + +SHELL=/bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +*/5 * * * * root curl "https://dynamicdns.key-systems.net/update.php?hostname={{dyndns_domain}}&password={{dyndns_password}}&ip={{dyndns_ip}}" > /dev/null