Tjenester
En recipe-tjeneste har bare tre kanoniske felt: name, enabled og et
åpent config-objekt. Formen valideres strukturelt, men en konfigurasjonsnøkkel
virker bare når valgt build worker eller feature hook implementerer den.
Validering er ikke bevis på at en daemon ble installert eller konfigurert.
{
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 2222,
"allow_root": false,
"disable_password_auth": true,
"authorized_keys": ["ssh-ed25519 AAAA... operator@example"]
}
}
]
}SSH-konfigurasjon
Den generelle Linux-buildstien gjenkjenner disse SSH-innstillingene:
| Recipe-nøkkel | 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-tokenverdi |
pubkey_authentication | Direkte OpenSSH-tokenverdi |
client_alive_interval | Begrenset ClientAliveInterval |
client_alive_attempts | Begrenset ClientAliveCountMax |
authentication_retries | Begrenset MaxAuthTries |
timeout | Begrenset innloggingstid før avbrudd |
x11_forwarding, allow_agent_forwarding, allow_tcp_forwarding | Direkte OpenSSH-tokenverdier |
authorized_keys | Installerer angitte offentlige nøkler der det støttes |
Worker-spesifikke stier kan støtte et mindre sett. Spesielt hardware-, Proxmox- og Raspberry Pi-buildere har egne adaptere. Inspiser det normaliserte recipe-et og buildadvarsler for valgt mål.
Hvis passordautentisering er slått av, ta med minst én gyldig offentlig nøkkel og test den separat før du deployer til hardware. Ikke legg private nøkler eller passord i recipe-tjenestens konfigurasjon.
Andre tjenester
Navn som nginx, wireguard, DNS, DHCP eller brannmurkomponenter er ikke
et universelt konfigurasjons-API. Pakkene og konfigurasjonen kommer fra
tilsvarende feature, hook, pakkeliste eller startup script for valgt base.
Et vilkårlig objekt som config.sites kan aksepteres av skjemaet og likevel
ignoreres.
Bruk denne rekkefølgen:
- Velg et base image og aktiver den konkrete featuren eller pakkene.
- Legg bare til konfigurasjonsnøkler som er implementert for den capabilityen.
- Inspiser det normaliserte recipe-et og genererte advarsler.
- Legg til assertions for pakke tilstedeværelse, tjenesteaktivering, listener-porter, konfigurasjonsfiler og svar på applikasjonsnivå.
- Boot og test artefakten før hardware eller produksjon.
Se Features, Startup scripts og Assertion types.