- name: curl installieren (falls nicht vorhanden) ansible.builtin.package: name: curl state: present - name: Verzeichnis für Skript sicherstellen ansible.builtin.file: path: "{{ script_path | dirname }}" state: directory owner: root group: root mode: '0755' - name: Skript installieren ansible.builtin.template: src: update-dns.sh.j2 dest: "{{ script_path }}" owner: root group: root mode: '0755' - name: systemd Service-Datei erstellen ansible.builtin.copy: dest: "/etc/systemd/system/{{ service_name }}.service" content: | [Unit] Description=Update DNS after boot [Service] ExecStart={{ script_path }} Type=oneshot owner: root group: root mode: "0644" - name: systemd Timer-Datei erstellen ansible.builtin.copy: dest: "/etc/systemd/system/{{ service_name }}.timer" content: | [Unit] Description=Run DNS update 10 seconds after boot [Timer] OnBootSec=10s AccuracySec=1s Unit={{ service_name }}.service [Install] WantedBy=timers.target owner: root group: root mode: "0644" - name: systemd Timer aktivieren und starten ansible.builtin.systemd: name: "{{ service_name }}.timer" enabled: true state: started daemon_reload: true - name: Skript sofort ausführen (einmalig beim Installieren) ansible.builtin.shell: "{{ script_path }}" register: dns_script_output failed_when: "'Fehler' in dns_script_output.stdout or dns_script_output.rc != 0" - name: Ausgabe des DNS-Update-Skripts anzeigen ansible.builtin.debug: var: dns_script_output.stdout_lines when: dns_script_output is defined