Skip to Content
Building OsServices

Services

Ein Rezept-Service hat nur drei kanonische Felder: name, enabled und ein offenes config-Objekt. Die Form validiert strukturell, aber ein Config-Key wirkt nur, wenn der gewählte Build-Worker oder Feature-Hook ihn implementiert. Validierung beweist nicht, dass ein Daemon installiert oder konfiguriert wurde.

{ "services": [ { "name": "ssh", "enabled": true, "config": { "port": 2222, "allow_root": false, "disable_password_auth": true, "authorized_keys": ["ssh-ed25519 AAAA... operator@example"] } } ] }

SSH-Konfiguration

Der allgemeine Linux-Build-Pfad erkennt diese SSH-Einstellungen:

Rezept-KeyWirkung
port oder listen_portOpenSSH-Port, 1–65.535
allow_rootMappt auf PermitRootLogin
disable_password_authInvertiert in PasswordAuthentication
password_authenticationDirekter OpenSSH-Token-Wert
pubkey_authenticationDirekter OpenSSH-Token-Wert
client_alive_intervalBegrenztes ClientAliveInterval
client_alive_attemptsBegrenztes ClientAliveCountMax
authentication_retriesBegrenztes MaxAuthTries
timeoutBegrenzte Login-Grace-Time
x11_forwarding, allow_agent_forwarding, allow_tcp_forwardingDirekte OpenSSH-Token-Werte
authorized_keysInstalliert die gelieferten Public Keys, wo unterstützt

Worker-spezifische Pfade können eine kleinere Menge unterstützen. Insbesondere Hardware-, Proxmox- und Raspberry-Pi-Builder haben eigene Adapter. Normalisiertes Rezept und Build-Warnungen für das gewählte Ziel prüfen.

Ist Passwort-Authentifizierung deaktiviert, mindestens einen gültigen Public Key einbeziehen und unabhängig testen, bevor auf Hardware deployed wird. Keine privaten Keys oder Passwörter in Rezept-Service-Konfiguration.

Weitere Services

Namen wie nginx, wireguard, DNS, DHCP oder Firewall-Komponenten sind keine universelle Konfigurations-API. Pakete und Konfiguration kommen vom passenden Feature, Hook, Paketliste oder Startup-Skript für die gewählte Base. Ein beliebiges Objekt wie config.sites kann vom Schema akzeptiert und trotzdem ignoriert werden.

Diese Reihenfolge nutzen:

  1. Base Image wählen und konkretes Feature oder Pakete aktivieren.
  2. Nur Config-Keys hinzufügen, die für diese Capability implementiert sind.
  3. Normalisiertes Rezept und generierte Warnungen prüfen.
  4. Assertions für Paketpräsenz, Service-Enablement, Listener-Ports, Config-Dateien und Application-Level-Antwort hinzufügen.
  5. Artefakt booten und testen vor Hardware- oder Produktions-Promotion.

Siehe Features, Startup scripts und Assertion types.