Skip to Content
Building OsServices

Services

Een recipe-service heeft slechts drie canonieke velden: name, enabled en een open config-object. De vorm valideert structureel, maar een configuratiesleutel werkt alleen als de gekozen build worker of feature hook die implementeert. Validatie bewijst niet dat een daemon is geïnstalleerd of geconfigureerd.

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

SSH-configuratie

Het algemene Linux-buildpad herkent deze SSH-instellingen:

RecipesleutelEffect
port or listen_portOpenSSH-poort, 1–65.535
allow_rootKomt overeen met PermitRootLogin
disable_password_authKeert om naar PasswordAuthentication
password_authenticationDirecte OpenSSH-tokenwaarde
pubkey_authenticationDirecte OpenSSH-tokenwaarde
client_alive_intervalAfgebakende ClientAliveInterval
client_alive_attemptsAfgebakende ClientAliveCountMax
authentication_retriesAfgebakende MaxAuthTries
timeoutAfgebakende login-gracetime
x11_forwarding, allow_agent_forwarding, allow_tcp_forwardingDirecte OpenSSH-tokenwaarden
authorized_keysInstalleert de opgegeven publieke sleutels waar ondersteund

Worker-specifieke paden kunnen een kleinere set ondersteunen. Hardware-, Proxmox- en Raspberry Pi-builders hebben elk eigen adapters. Controleer het genormaliseerde recipe en buildwaarschuwingen voor het gekozen doel.

Als wachtwoordauthenticatie uit staat, neem minstens één geldige publieke sleutel op en test die apart voordat je op hardware deployt. Zet geen privésleutels of wachtwoorden in de recipe-serviceconfiguratie.

Overige services

Namen zoals nginx, wireguard, DNS, DHCP of firewallcomponenten vormen geen universele configuratie-API. Pakketten en configuratie komen uit de bijbehorende feature, hook, pakketlijst of startup script voor de gekozen base. Een willekeurig object zoals config.sites kan door het schema worden geaccepteerd en toch worden genegeerd.

Gebruik deze volgorde:

  1. Kies een base image en schakel de concrete feature of pakketten in.
  2. Voeg alleen configuratiesleutels toe die voor die capability zijn geïmplementeerd.
  3. Controleer het genormaliseerde recipe en gegenereerde waarschuwingen.
  4. Voeg assertions toe voor pakketaanwezigheid, service-inschakeling, listener-poorten, configuratiebestanden en een antwoord op applicatieniveau.
  5. Start het artefact op en test het voordat je naar hardware of productie gaat.

Zie Features, Startup scripts, en Assertion types.