- 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"