Files
ansible-content-stabil/roles/virenscanner/tasks/main.yml
T
adminandClaude Sonnet 5 553117466b Phase 2: 10 neue Konfiguration/Härtung-Merkmale (erste Batch)
Konfiguration: multimedia-codecs, barrierefreiheit, wlan-firmware,
tastaturlayout, laender, zeitserver, auto-update.
Härtung: firewall, virenscanner, security-updates.

Vier Config-Value-Rollen (tastaturlayout/laender/zeitserver/auto-update)
nutzen tuxflotte_optionen fuer den eigentlichen Wert (Muster wie
brave/standardbrowser), nicht nur present/absent.

ECHT auf golden-linux-mint getestet (ansible-core dort, Live-VM ueber
SSH), nicht nur Syntax-Check - dabei drei reale Bugs gefunden+behoben:

1. wlan-firmware: Paketname ist NICHT distributionsunabhaengig wie
   angenommen - Debian "firmware-linux-nonfree", Ubuntu/Mint
   "linux-firmware". Per ansible_facts[distribution] verzweigt (dabei
   zusaetzlich gelernt: Mint meldet sich als "Linux Mint" mit
   Leerzeichen, nicht "Linuxmint").
2. auto-update: Jinja-Dict-Lookup in set_fact lieferte einen String
   statt int zurueck, dadurch spaeterer Vergleich mit TypeError
   abgestuerzt UND zwei stille Gleichheitsvergleiche immer falsch
   (waeren nie aufgefallen ohne den einen lauten Fehler an anderer
   Stelle). Mit explizitem int-Filter behoben.
3. firewall/security-updates: Auftrag-abgewaehlt deaktivierte nur die
   Funktion (ufw disable / Config-Datei loeschen), liess aber das Paket
   installiert - inkonsistent zum Rest des Katalogs, wo absent immer
   vollstaendige Rueckabwicklung bedeutet. Ergaenzt.

Nebenbefund beim Testen: clamav-daemon startet bewusst nicht sofort nach
der Installation (echte systemd-Condition auf die noch fehlende
Signaturdatenbank) - kein Bug, aber clamav-freshclam war standardmaessig
nicht dauerhaft aktiviert, das nachgezogen.

Firewall-Rolle laesst SSH bewusst offen (sonst waere Fernwartung
ausgesperrt - fast selbst beim Testen passiert). Bekannte offene Luecke
klar kommentiert: andere Merkmale mit Eingehend-Bedarf (z.B. veyon)
muessen ihre eigene ufw-Freigabe mitbringen, diese Rolle kennt andere
Merkmale nicht (Konflikt-/Gruppen-Handling insgesamt noch offen, siehe
Roadmap).

Gehoert zusammen mit admin/provisioning-server-Migration 0035 (live auf
anode angewendet+verifiziert: 10 Merkmale, 30 Blueprint-Zeilen) und den
3 neuen Kategorien aus Migration 0034.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VLk93dhDMrkPXefVdknMV9
2026-09-10 09:07:37 +02:00

66 lines
2.2 KiB
YAML

- name: Ensure marker directory exists
ansible.builtin.file:
path: /run/tuxflotte/agent/applied
state: directory
mode: "0755"
# ClamAV: clamav-daemon bringt den On-Access-faehigen Hintergrunddienst mit,
# freshclam aktualisiert die Signaturen. Regulaere Debian/Ubuntu-Pakete,
# apt-cache verifiziert (10.09.2026). Live beim Testen gefunden (10.09.2026):
# clamav-daemon.service hat eine echte systemd-ConditionPathExistsGlob auf
# die Signatur-Datenbank (/var/lib/clamav/daily.*) - startet also bewusst
# NICHT sofort nach der Installation, sondern erst, sobald freshclam die
# erste Datenbank heruntergeladen hat (kann je nach Netz ein paar Minuten
# dauern). Kein Fehler, sondern korrektes ClamAV-Verhalten - "state:
# started" unten ist deshalb ein bewusst folgenloser Versuch, kein
# Fehlschlag, falls die DB noch fehlt. clamav-freshclam war im Test
# standardmaessig NICHT aktiviert (nur einmalig durchs Postinstall
# gestartet) - "enabled: true" stellt sicher, dass Signatur-Updates auch
# nach einem Reboot automatisch weiterlaufen.
- name: ClamAV installieren
ansible.builtin.apt:
name:
- clamav
- clamav-daemon
state: present
update_cache: true
cache_valid_time: 3600
when: tuxflotte_state == "present"
- name: freshclam-Signatur-Updater dauerhaft aktivieren
ansible.builtin.systemd:
name: clamav-freshclam
enabled: true
state: started
when: tuxflotte_state == "present"
- name: ClamAV-Dienst aktiv halten (sobald Signaturdatenbank vorhanden ist)
ansible.builtin.systemd:
name: clamav-daemon
enabled: true
state: started
when: tuxflotte_state == "present"
failed_when: false
- name: Record that the virenscanner role ran
ansible.builtin.copy:
dest: /run/tuxflotte/agent/applied/virenscanner.marker
content: "{{ ansible_date_time.iso8601 }}\n"
mode: "0644"
when: tuxflotte_state == "present"
- name: ClamAV entfernen (Auftrag abgewählt)
ansible.builtin.apt:
name:
- clamav
- clamav-daemon
state: absent
when: tuxflotte_state == "absent"
- name: virenscanner-Marker entfernen (Auftrag abgewählt)
ansible.builtin.file:
path: /run/tuxflotte/agent/applied/virenscanner.marker
state: absent
when: tuxflotte_state == "absent"