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

40 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.target``After=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 |