Rolle DNS Registrierung hinzugefügt

This commit is contained in:
Stefan Mewes
2026-03-20 18:16:35 +01:00
parent f8aeb9c1e6
commit 63a6aec81d
5 changed files with 248 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
- 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
+11
View File
@@ -0,0 +1,11 @@
- name: DNS-Modus anzeigen
ansible.builtin.debug:
msg: "DNS-Modus ist '{{ dns_registrierung_modus }}'"
- name: Installation ausführen
ansible.builtin.include_tasks: install.yml
when: dns_registrierung_modus | lower == "install"
- name: Entfernung ausführen
ansible.builtin.include_tasks: remove.yml
when: dns_registrierung_modus | lower == "remove"
+51
View File
@@ -0,0 +1,51 @@
- name: Hostname ermitteln
command: hostname
register: hostname_result
- name: IP-Adresse ermitteln
command: hostname -I
register: ip_result
- name: DNS-Eintrag beim Technitium-DNS entfernen
uri:
url: "http://{{ dns_server }}:5380/api/zones/records/delete?domain={{ hostname_result.stdout }}.{{ dns_zone }}&zone={{ dns_zone }}&type=A&token={{ api_token }}"
method: GET
return_content: true
register: delete_dns_response
- name: Rückmeldung zur DNS-Löschung anzeigen
debug:
var: delete_dns_response.content
- name: systemd Timer stoppen und deaktivieren
systemd:
name: "{{ service_name }}.timer"
enabled: false
state: stopped
daemon_reload: true
- name: systemd Service stoppen und deaktivieren
systemd:
name: "{{ service_name }}.service"
enabled: false
state: stopped
daemon_reload: true
- name: systemd Timer-Datei löschen
file:
path: "/etc/systemd/system/{{ service_name }}.timer"
state: absent
- name: systemd Service-Datei löschen
file:
path: "/etc/systemd/system/{{ service_name }}.service"
state: absent
- name: systemd Daemon neu laden
systemd:
daemon_reload: true
- name: Bashskript löschen
file:
path: "{{ script_path }}"
state: absent