Servicii
Un serviciu din recipe are doar trei câmpuri canonice: name, enabled și un
obiect config deschis. Forma trece validarea structurală, dar o cheie de
configurare are efect doar când build worker-ul sau feature hook-ul selectat o
implementează. Validarea nu dovedește că un daemon a fost instalat sau
configurat.
{
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 2222,
"allow_root": false,
"disable_password_auth": true,
"authorized_keys": ["ssh-ed25519 AAAA... operator@example"]
}
}
]
}Configurare SSH
Calea generală de build Linux recunoaște aceste setări SSH:
| Cheie recipe | Efect |
|---|---|
port sau listen_port | Port OpenSSH, 1–65 535 |
allow_root | Mapează la PermitRootLogin |
disable_password_auth | Transformă (inversează) în PasswordAuthentication |
password_authentication | Valoare directă de token OpenSSH |
pubkey_authentication | Valoare directă de token OpenSSH |
client_alive_interval | ClientAliveInterval limitat |
client_alive_attempts | ClientAliveCountMax limitat |
authentication_retries | MaxAuthTries limitat |
timeout | Timp de grație la autentificare limitat |
x11_forwarding, allow_agent_forwarding, allow_tcp_forwarding | Valori directe de token OpenSSH |
authorized_keys | Instalează cheile publice furnizate acolo unde este suportat |
Căile specifice worker-ului pot suporta un set mai mic. În special, builderele hardware, Proxmox și Raspberry Pi au adaptoare proprii. Inspectați recipe-ul normalizat și avertismentele de build pentru ținta selectată.
Dacă autentificarea cu parolă este dezactivată, includeți și testați independent cel puțin o cheie publică validă înainte de implementare pe hardware. Nu puneți chei private sau parole în configurarea serviciului din recipe.
Alte servicii
Nume precum nginx, wireguard, DNS, DHCP sau componente de firewall nu sunt un
API universal de configurare. Pachetele și configurarea lor vin din feature-ul,
hook-ul, lista de pachete sau startup script corespunzător bazei selectate. Un
obiect arbitrar precum config.sites poate fi acceptat de schemă și totuși
ignorat.
Urmați această secvență:
- Selectați un base image și activați feature-ul concret sau pachetele.
- Adăugați doar chei de configurare implementate pentru acea capability.
- Inspectați recipe-ul normalizat și avertismentele generate.
- Adăugați assertions pentru prezența pachetelor, activarea serviciului, porturile de ascultare, fișierele de configurare și un răspuns la nivel de aplicație.
- Porniți și testați artefactul înainte de promovare pe hardware sau în producție.
Consultați Features, Startup scripts și Assertion types.