Skip to Content
Building OsFunkcije gradnje

Funkcije gradnje

Feature je poimenovan modul gradnje. Vnos v registru lahko deklarira pakete za eno ali več družin distribucij in lahko vsebuje tudi build hooks, vzdevke, metapodatke capability in guest assertions.

Dodajanje feature izraža namen. Samo po sebi ne dokazuje, da je bil na voljo vsak paket, da se je izvedel vsak hook ali da končno obnašanje deluje na ciljnem image. Validacija recepta, zaključek gradnje in preverjanje guest so ločena vrata.

Najdite trenutni nabor feature

Uporabite feature selector ali feature-catalog API v nameščeni izdaji OpenFactory. Ta izhod je zavezujoč za tekočo različico. Statični seznami hitro zastarajo, nekateri vnosi registra pa so skriti, ker podpirajo notranje fixtures ali nepopolne integracije.

Pred izbiro feature preverite:

  • ali je vidna in omogočena za vaš račun;
  • ali deklarira pakete za družino distribucije recepta;
  • ali so zunanji viri pripeti in dostopni;
  • ali ima assertions, ki dokazujejo obnašanje, ki ga potrebujete; in
  • ali je v sporu z drugim zahtevanim modulom.

Reprezentativne kategorije

Register trenutno vključuje module v kategorijah, kot so:

KategorijaPrimeriZahtevan dokaz
Desktopdesktop-kde, desktop-gnome-minimal, krita, kdenlivetip seje, nameščeni paketi, obnašanje launcherja in resničen desktop smoke test
Ukazna vrstica in razvojgit, curl, python, nodejs, rustinventar paketov/različic in smoke testi executable
Infrastrukturanginx, postgresql, redis, docker, ansiblekonfiguracija storitve, stanje enabled/running, vrata in health na ravni aplikacije
Securityfirewall, audit-logging, security-hardening, apparmorustvarjena policy, aktivno runtime stanje, negativni testi in dokumentirane izjeme
Usmerjeno v compliancecis-benchmarks, gxp, disa-stig, nist-800-53natančen vir benchmark/control, uporabnost, rezultati po control in človeška presoja
Orodja AIollama, alpaca, aider, codex-clipripeta provenance source/package, meja prenosa modela, test zagona in zahteve po virih

Primeri niso matrika združljivosti. Ime feature lahko obstaja, medtem ko implementacija za določeno distribucijo ostaja delna.

Feature, paket in storitev niso isto

  • os.features izbere registrirane build module.
  • os.packages pri native package managerju zahteva določene pakete.
  • os.services poda poimenovan namen omogočanja in konfiguracije.

Na primer:

{ "os": { "features": ["ssh", "firewall"], "packages": ["curl", "jq"], "services": [ { "name": "ssh", "enabled": true, "config": { "port": 22, "disable_password_auth": true } } ] } }

Veljavna konfiguracija storitve lahko še vedno vsebuje ključ, ki ga generator ne porabi. Preglejte normaliziran recept in preizkusite ustvarjenega guest.

Oznake security in compliance

security-hardening namesti in konfigurira splošno hardening baseline. Ni sopomenka CIS profila. hardening_level v receptu je konfiguracijska oznaka, ki jo interpretirajo generatorji za cilj; ni certifikacije niti univerzalnega preslikavanja na CIS Level 1 ali Level 2.

Feature cis-benchmarks ima bolj specifično remediation pot za Ubuntu 24.04 Level 1. Druge base image ne prejmejo iste vloge. Natančno mejo opisuje CIS benchmark evidence.

Prav tako omogočanje feature, poimenovanega za GxP, HIPAA, SOC 2, PCI DSS, NIST ali DISA, ne vzpostavi organizacijske compliance. Lahko doda pakete, konfiguracijo in teste, ki prispevajo dokaze k ločeno vodeni oceni.

Varno kombiniranje feature

  1. Začnite z najmanjšim naborom, ki izraža zahtevano obnašanje.
  2. Validirajte recept in preglejte normaliziran izhod za opuščena ali sklepana polja.
  3. Preglejte razširjen načrt paketov in hookov.
  4. Gradnjo zaženite enkrat in sledite njenemu trajnemu build ID.
  5. V nabootanem guest zaženite assertions, specifične za feature.
  6. Napake in namerne izjeme zapišite eksplicitno.
  7. Dodajte še en feature šele, ko razumete trenutno baseline.

Kanonično obliko JSON opisuje Recipe Schema.