Feature di build
Una feature è un modulo di build nominato. La sua voce di registro può dichiarare pacchetti per una o più famiglie di distribuzione e può includere anche hook di build, alias, metadati capacità e asserzioni guest.
Aggiungere una feature esprime intento. Da sola non prova che ogni pacchetto fosse disponibile, ogni hook sia stato eseguito o il comportamento risultante funzioni sull’immagine target. Validazione ricetta, completamento build e verifica guest sono gate separati.
Trova il set feature corrente
Usa il selettore feature o l’API catalogo feature nella release OpenFactory deployata. Quell’output è autoritativo per la versione in esecuzione. Elenchi statici invecchiano in fretta, e alcune voci registro sono nascoste perché supportano fixture interne o integrazioni incomplete.
Prima di scegliere una feature, controlla:
- se è visibile e abilitata per il tuo account;
- se dichiara pacchetti per la famiglia distribuzione della ricetta;
- se le sue sorgenti esterne sono pin e recuperabili;
- se ha asserzioni che provano il comportamento che ti serve; e
- se entra in conflitto con un altro modulo richiesto.
Categorie rappresentative
Il registro include attualmente moduli in categorie come:
| Categoria | Esempi | Evidenza da richiedere |
|---|---|---|
| Desktop | desktop-kde, desktop-gnome-minimal, krita, kdenlive | tipo sessione, pacchetti installati, comportamento launcher e uno smoke test desktop reale |
| Command line e development | git, curl, python, nodejs, rust | inventario pacchetto/versione e smoke test eseguibile |
| Infrastruttura | nginx, postgresql, redis, docker, ansible | configurazione servizio, stato enabled/running, porte e salute a livello applicazione |
| Sicurezza | firewall, audit-logging, security-hardening, apparmor | policy generata, stato runtime attivo, test negativi ed eccezioni documentate |
| Orientate conformità | cis-benchmarks, gxp, disa-stig, nist-800-53 | sorgente benchmark/controllo esatta, applicabilità, risultati per controllo e disposizione umana |
| Strumenti AI | ollama, alpaca, aider, codex-cli | provenienza sorgente/pacchetto pin, confine download modello, test avvio e requisiti risorse |
Gli esempi non sono una matrice di compatibilità. Un nome feature può esistere mentre un’implementazione per una distribuzione particolare resta parziale.
Feature, pacchetto e servizio sono diversi
os.featuresseleziona moduli build registrati.os.packageschiede al package manager nativo pacchetti specifici.os.servicesfornisce intento di abilitazione e configurazione nominati.
Ad esempio:
{
"os": {
"features": ["ssh", "firewall"],
"packages": ["curl", "jq"],
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 22,
"disable_password_auth": true
}
}
]
}
}Una config servizio valida può comunque contenere una chiave che il generatore non consuma. Ispeziona la ricetta normalizzata e testa il guest generato.
Etichette sicurezza e conformità
security-hardening installa e configura una baseline di hardening generale. Non
è sinonimo di un profilo CIS. Il hardening_level della ricetta è un’etichetta
di configurazione interpretata da generatori specifici per target; non è una
certificazione né una mappatura universale a CIS Level 1 o Level 2.
La feature cis-benchmarks ha un percorso remediation Level 1 Ubuntu 24.04 più
specifico. Altre basi non ricevono lo stesso ruolo. Vedi Evidenza benchmark
CIS per il confine esatto.
Allo stesso modo, abilitare una feature nominata per GxP, HIPAA, SOC 2, PCI DSS, NIST o DISA non stabilisce conformità organizzativa. Può aggiungere pacchetti, configurazione e test che contribuiscono evidenza a una valutazione governata separatamente.
Combinare feature in sicurezza
- Inizia con il set più piccolo che esprime il comportamento richiesto.
- Valida la ricetta e ispeziona l’output normalizzato per campi scartati o inferiti.
- Rivedi il piano pacchetti e hook espanso.
- Builda una volta e segui il suo ID build durabile.
- Esegui asserzioni specifiche per feature in un guest avviato.
- Registra fallimenti ed eccezioni intenzionali esplicitamente.
- Aggiungi un’altra feature solo dopo aver capito la baseline corrente.
Per la forma JSON canonica, vedi Schema ricetta.