--- - name: create user for dyndns user: name: dyndns home: /var/lib/dyndns system: yes shell: /bin/sh groups: bind - name: create .ssh directory file: path: /var/lib/dyndns/.ssh state: directory mode: 0700 owner: dyndns group: dyndns - name: install zone update scripts loop: - dyndns.py - dyndns-regen.py template: src: "{{ item }}.j2" dest: "/usr/local/bin/{{ item }}" mode: 0755 - 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"