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:
| Recipesleutel | Effect |
|---|---|
port or listen_port | OpenSSH-poort, 1–65.535 |
allow_root | Komt overeen met PermitRootLogin |
disable_password_auth | Keert om naar PasswordAuthentication |
password_authentication | Directe OpenSSH-tokenwaarde |
pubkey_authentication | Directe OpenSSH-tokenwaarde |
client_alive_interval | Afgebakende ClientAliveInterval |
client_alive_attempts | Afgebakende ClientAliveCountMax |
authentication_retries | Afgebakende MaxAuthTries |
timeout | Afgebakende login-gracetime |
x11_forwarding, allow_agent_forwarding, allow_tcp_forwarding | Directe OpenSSH-tokenwaarden |
authorized_keys | Installeert 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:
- Kies een base image en schakel de concrete feature of pakketten in.
- Voeg alleen configuratiesleutels toe die voor die capability zijn geïmplementeerd.
- Controleer het genormaliseerde recipe en gegenereerde waarschuwingen.
- Voeg assertions toe voor pakketaanwezigheid, service-inschakeling, listener-poorten, configuratiebestanden en een antwoord op applicatieniveau.
- Start het artefact op en test het voordat je naar hardware of productie gaat.
Zie Features, Startup scripts, en Assertion types.