From 4d9138b8283eced0c5b47865e2023c63a55558c2 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 11 Nov 2022 22:34:56 +0100 Subject: ch-pan: deploy new and improved dyndns/server --- roles/dyndns/server/tasks/main.yml | 39 +++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) (limited to 'roles/dyndns/server/tasks') diff --git a/roles/dyndns/server/tasks/main.yml b/roles/dyndns/server/tasks/main.yml index 06ef6c47..c29d7edd 100644 --- a/roles/dyndns/server/tasks/main.yml +++ b/roles/dyndns/server/tasks/main.yml @@ -10,17 +10,42 @@ - name: create .ssh directory file: path: /var/lib/dyndns/.ssh + state: directory mode: 0700 owner: dyndns group: dyndns -- name: install zone update script +- name: install zone update scripts + loop: + - dyndns.py + - dyndns-regen.py template: - src: dyndns.py.j2 - dest: /usr/local/bin/dyndns.py + src: "{{ item }}.j2" + dest: "/usr/local/bin/{{ item }}" mode: 0755 -- name: install script dependency - apt: - name: python-easyzone - state: present +- name: test if serial file exists + stat: + path: "/var/lib/dyndns/serial.{{ dyndns.domain }}" + register: dyndns_serial_file_info + +- name: autogenerate new serial + when: not dyndns_serial_file_info.stat.exists + copy: + content: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}00\n" + dest: "/var/lib/dyndns/serial.{{ dyndns.domain }}" + owner: dyndns + group: dyndns + +- name: generate header template + template: + src: header.tmpl.j2 + dest: "/var/lib/dyndns/header.{{ dyndns.domain }}" + +- name: regenerate dns zone file if changed + become: yes + become_method: su + become_user: dyndns + command: /usr/local/bin/dyndns-regen.py "{{ dyndns.domain }}" + register: dyndns_regen + changed_when: "'OK: already up to date.' not in dyndns_regen.stdout" -- cgit v1.2.3