Tjenester
En recipe-tjeneste har kun tre kanoniske felter: name, enabled og et
åbent config-objekt. Formen valideres strukturelt, men en konfigurationsnøgle
virker kun, når den valgte build worker eller feature hook implementerer den.
Validering er ikke bevis for, at en daemon blev installeret eller konfigureret.
{
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 2222,
"allow_root": false,
"disable_password_auth": true,
"authorized_keys": ["ssh-ed25519 AAAA... operator@example"]
}
}
]
}SSH-konfiguration
Den generelle Linux-buildsti genkender disse SSH-indstillinger:
| Recipe-nøgle | Effekt |
|---|---|
port or listen_port | OpenSSH-port, 1–65 535 |
allow_root | Mapper til PermitRootLogin |
disable_password_auth | Inverteres til PasswordAuthentication |
password_authentication | Direkte OpenSSH-tokenværdi |
pubkey_authentication | Direkte OpenSSH-tokenværdi |
client_alive_interval | Afgrænset ClientAliveInterval |
client_alive_attempts | Afgrænset ClientAliveCountMax |
authentication_retries | Afgrænset MaxAuthTries |
timeout | Afgrænset login-graceperiode |
x11_forwarding, allow_agent_forwarding, allow_tcp_forwarding | Direkte OpenSSH-tokenværdier |
authorized_keys | Installerer angivne offentlige nøgler, hvor det understøttes |
Worker-specifikke stier kan understøtte et mindre sæt. Især hardware-, Proxmox- og Raspberry Pi-builders har egne adaptrer. Gennemgå det normaliserede recipe og buildadvarsler for det valgte mål.
Hvis adgangskodegodkendelse er slået fra, medtag mindst én gyldig offentlig nøgle og test den separat, før du deployer til hardware. Læg ikke private nøgler eller adgangskoder i recipe-tjenestens konfiguration.
Andre tjenester
Navne som nginx, wireguard, DNS, DHCP eller firewall-komponenter er ikke
et universelt konfigurations-API. Deres pakker og konfiguration kommer fra
tilsvarende feature, hook, pakkeliste eller startup script for den valgte base.
Et vilkårligt objekt som config.sites kan accepteres af skemaet og alligevel
ignoreres.
Brug denne rækkefølge:
- Vælg et base image, og aktiver den konkrete feature eller pakker.
- Tilføj kun konfigurationsnøgler, der er implementeret for den capability.
- Gennemgå det normaliserede recipe og genererede advarsler.
- Tilføj assertions for pakke tilstedeværelse, tjenesteaktivering, listener-porte, konfigurationsfiler og svar på applikationsniveau.
- Boot og test artefakten, før hardware eller produktion.
Se Features, Startup scripts og Assertion types.