Serviços
Um serviço na receita tem apenas três campos canônicos: name, enabled e um objeto config aberto. O formato valida estruturalmente, mas uma chave de configuração só tem efeito quando o worker de build selecionado ou hook de feature a implementa. Validação não prova que um daemon foi instalado ou configurado.
{
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 2222,
"allow_root": false,
"disable_password_auth": true,
"authorized_keys": ["ssh-ed25519 AAAA... operator@example"]
}
}
]
}Configuração SSH
O caminho geral de build Linux reconhece estas configurações SSH:
| Chave da receita | Efeito |
|---|---|
port ou listen_port | Porta OpenSSH, 1–65.535 |
allow_root | Mapeia para PermitRootLogin |
disable_password_auth | Inverte em PasswordAuthentication |
password_authentication | Valor direto de token OpenSSH |
pubkey_authentication | Valor direto de token OpenSSH |
client_alive_interval | ClientAliveInterval limitado |
client_alive_attempts | ClientAliveCountMax limitado |
authentication_retries | MaxAuthTries limitado |
timeout | Tempo de grace de login limitado |
x11_forwarding, allow_agent_forwarding, allow_tcp_forwarding | Valores diretos de token OpenSSH |
authorized_keys | Instala as chaves públicas fornecidas onde suportado |
Caminhos específicos de worker podem suportar conjunto menor. Em particular, builders de hardware, Proxmox e Raspberry Pi têm adapters próprios. Inspecione a receita normalizada e avisos de build para o alvo selecionado.
Se autenticação por senha estiver desabilitada, inclua e teste independentemente pelo menos uma chave pública válida antes de implantar em hardware. Não coloque chaves privadas ou senhas na configuração de serviço da receita.
Outros serviços
Nomes como nginx, wireguard, DNS, DHCP ou componentes de firewall não são API universal de configuração. Pacotes e configuração vêm do feature, hook, lista de pacotes ou script de startup correspondente para a base selecionada. Um objeto arbitrário como config.sites pode ser aceito pelo schema e ainda ser ignorado.
Use esta sequência:
- Selecione imagem base e habilite o feature ou pacotes concretos.
- Adicione apenas chaves de configuração implementadas para aquela capacidade.
- Inspecione a receita normalizada e avisos gerados.
- Adicione asserções para presença de pacote, enablement de serviço, portas listener, arquivos de configuração e resposta em nível de aplicativo.
- Inicialize e teste o artefato antes de promoção em hardware ou produção.
Veja Features, Scripts de startup e Tipos de asserção.