docs: spec Boot-Optimierung network-online + cloud-init
This commit is contained in:
parent
b4d0a24320
commit
2ccfd8592b
1 changed files with 40 additions and 0 deletions
40
docs/superpowers/specs/2026-03-27-boot-optimierung-design.md
Normal file
40
docs/superpowers/specs/2026-03-27-boot-optimierung-design.md
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# 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 10–30 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 |
|
||||||
Loading…
Add table
Reference in a new issue