Rolle DNS Registrierung hinzugefügt
This commit is contained in:
@@ -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
|
||||
@@ -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"
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user