morz-infoboard/docs/superpowers/specs/2026-03-27-boot-optimierung-design.md

1.6 KiB
Raw Blame History

Boot-Optimierung: network-online entfernen + cloud-init deinstallieren

Datum: 2026-03-27

Problem

Der Boot-Vorgang der Infoscreens ist unnötig langsam durch zwei Ursachen:

  1. morz-agent.service wartet auf network-online.target — blockiert systemd-Parallelstart bis das Netzwerk vollständig erreichbar ist (kann 1030 s kosten)
  2. cloud-init ist installiert und läuft bei jedem Boot durch — prüft Metadaten-Endpunkte, wartet auf Timeouts, obwohl keine Cloud-Infrastruktur genutzt wird

Lösung

1. morz-agent.service — network target

Datei: ansible/roles/signage_player/templates/morz-agent.service.j2

  • After=network-online.targetAfter=network.target
  • Wants=network-online.target → entfernen

Begründung: Restart=on-failure + RestartSec=10 sind bereits gesetzt. Der Agent verbindet sich zum MQTT-Broker asynchron und hat eigene Reconnect-Logik. Eine Race Condition führt also nur zu einem kurzen Neustart, nicht zu einem dauerhaften Ausfall.

2. cloud-init deinstallieren

Datei: ansible/roles/signage_base/tasks/main.yml

  • apt purge cloud-init — entfernt Paket inkl. Konfiguration
  • Verzeichnisse /etc/cloud und /var/lib/cloud entfernen
  • Mit failed_when: false abgesichert für Maschinen wo cloud-init nie installiert war

Nicht geändert

  • ExecStartPre=sleep 3 — existiert in der aktuellen Service-Datei nicht

Dateien

Datei Änderung
ansible/roles/signage_player/templates/morz-agent.service.j2 network target
ansible/roles/signage_base/tasks/main.yml cloud-init entfernen