Build-ominaisuudet
Feature on nimetty build-moduuli. Rekisterimerkintä voi deklaroida paketteja yhdelle tai useammalle jakeluperheelle ja voi sisältää myös build hookeja, aliaksia, capability-metatietoa ja guest assertioneja.
Featuren lisääminen ilmaisee tarkoituksen. Se ei itsessään todista, että jokainen paketti oli saatavilla, jokainen hook ajettiin tai että lopputuloksen käyttäytyminen toimii kohdekuvassa. Reseptin validointi, buildin valmistuminen ja guest-varmennus ovat erillisiä portteja.
Löydä nykyinen feature-joukko
Käytä feature selector -valitsinta tai feature-catalog API -rajapintaa käyttöönotetussa OpenFactory-versiossa. Tuota tulosta pidetään voimassa olevana juuri käynnissä olevalle versiolle. Staattiset listat vanhentuvat nopeasti, ja osa rekisterimerkinnöistä on piilotettu, koska ne tukevat sisäisiä fixtureja tai keskeneräisiä integraatioita.
Ennen featuren valintaa tarkista:
- onko se näkyvissä ja käytössä tililläsi;
- deklaroiko se paketteja reseptin jakeluperheelle;
- onko ulkoiset lähteet kiinnitetty ja haettavissa;
- onko sillä assertioneja, jotka todistavat tarvitsemasi käyttäytymisen; ja
- onko se ristiriidassa toisen pyydetyn moduulin kanssa.
Edustavia kategorioita
Rekisterissä on tällä hetkellä moduuleja kategorioissa kuten:
| Kategoria | Esimerkkejä | Vaadittava todiste |
|---|---|---|
| Desktop | desktop-kde, desktop-gnome-minimal, krita, kdenlive | istuntotyyppi, asennetut paketit, launcher-käyttäytyminen ja oikea desktop-smoketest |
| Komentorivi ja kehitys | git, curl, python, nodejs, rust | paketti-/versioinventaario ja executable-smoketestit |
| Infrastruktuuri | nginx, postgresql, redis, docker, ansible | palvelun konfiguraatio, enabled/running-tila, portit ja sovellustason health |
| Security | firewall, audit-logging, security-hardening, apparmor | generoitu policy, aktiivinen runtime-tila, negatiiviset testit ja dokumentoidut poikkeukset |
| Compliance-painotteinen | cis-benchmarks, gxp, disa-stig, nist-800-53 | tarkka benchmark-/control-lähde, soveltuvuus, tulokset per control ja ihmisen disposition |
| AI-työkalut | ollama, alpaca, aider, codex-cli | kiinnitetty source-/package-provenance, mallilatauksen raja, launchtest ja resurssivaatimukset |
Esimerkit eivät ole yhteensopivuusmatriisi. Feature-nimi voi olla olemassa, vaikka tietyn jakelun toteutus on vielä osittainen.
Feature, paketti ja palvelu ovat eri asioita
os.featuresvalitsee rekisteröidyt build-moduulit.os.packagespyytää natiivia package manageria asentamaan tietyt paketit.os.servicesantaa nimetyn enablement- ja konfiguraatiotarkoituksen.
Esimerkki:
{
"os": {
"features": ["ssh", "firewall"],
"packages": ["curl", "jq"],
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 22,
"disable_password_auth": true
}
}
]
}
}Kelvollinen palvelun config voi silti sisältää avaimia, joita generaattori ei käytä. Tarkista normalisoitu resepti ja testaa generoitu guest.
Security- ja compliance-tunnisteet
security-hardening asentaa ja konfiguroi yleisen hardening-perustason. Se ei tarkoita samaa kuin CIS-profiili. Reseptin hardening_level on konfiguraatiotunniste, jonka kohdekohtaiset generaattorit tulkitsevat; se ei ole sertifiointi eikä yleinen vastine CIS Level 1:lle tai Level 2:lle.
Feature cis-benchmarks tarjoaa tarkemman Ubuntu 24.04 Level 1 -remediaatiopolun. Muut baset eivät saa samaa roolia. Katso CIS benchmark evidence tarkasta rajasta.
Vastaavasti GxP-, HIPAA-, SOC 2-, PCI DSS-, NIST- tai DISA-nimisen featuren käyttöönotto ei luo organisaation compliancea. Se voi lisätä paketteja, konfiguraatiota ja testejä, jotka tuottavat todisteita erikseen hallittuun arviointiin.
Yhdistä featuret turvallisesti
- Aloita pienimmästä joukosta, joka ilmaisee pyydetyn käyttäytymisen.
- Validoi resepti ja tarkista normalisoitu tuloste hylätyistä tai päätellyistä kentistä.
- Käy läpi laajennettu paketti- ja hook-suunnitelma.
- Rakenna kerran ja seuraa pysyvää build ID:tä.
- Aja feature-kohtaiset assertionit käynnistetyssä guestissa.
- Kirjaa virheet ja tarkoitukselliset poikkeukset selvästi.
- Lisää uusi feature vasta kun nykyinen perustaso on ymmärretty.
Kanonicesta JSON-muodosta, katso Recipe Schema.