Build-Features
Ein Feature ist ein benanntes Build-Modul. Sein Registry-Eintrag kann Pakete für eine oder mehrere Distributionsfamilien deklarieren und kann Build-Hooks, Aliase, Capability-Metadaten und Gast-Assertions enthalten.
Ein Feature hinzuzufügen drückt Absicht aus. Es beweist allein nicht, dass jedes Paket verfügbar war, jeder Hook lief oder das resultierende Verhalten auf dem Ziel-Image funktioniert. Rezeptvalidierung, Build-Abschluss und Gast-Verifikation sind getrennte Gates.
Aktuelles Feature-Set finden
Nutzen Sie Feature-Selector oder Feature-Catalog-API in der ausgerollten OpenFactory-Version. Diese Ausgabe ist maßgeblich für die laufende Version. Statische Listen veralten schnell, und manche Registry-Einträge sind verborgen, weil sie interne Fixtures oder unvollständige Integrationen unterstützen.
Vor der Feature-Wahl prüfen:
- ob es für Ihr Konto sichtbar und aktiviert ist;
- ob es Pakete für die Distributionsfamilie des Rezepts deklariert;
- ob externe Quellen gepinnt und abrufbar sind;
- ob Assertions das benötigte Verhalten beweisen; und
- ob es mit einem anderen angeforderten Modul kollidiert.
Repräsentative Kategorien
Die Registry enthält derzeit Module in Kategorien wie:
| Kategorie | Beispiele | Nachweis verlangen |
|---|---|---|
| Desktop | desktop-kde, desktop-gnome-minimal, krita, kdenlive | Session-Typ, installierte Pakete, Launcher-Verhalten und echter Desktop-Smoke-Test |
| Command Line und Development | git, curl, python, nodejs, rust | Paket-/Versions-Inventar und Executable-Smoke-Tests |
| Infrastructure | nginx, postgresql, redis, docker, ansible | Dienstkonfiguration, enabled/running, Ports und Application-Level-Health |
| Security | firewall, audit-logging, security-hardening, apparmor | generierte Policy, aktiver Runtime-Zustand, Negativtests und dokumentierte Ausnahmen |
| Compliance-orientiert | cis-benchmarks, gxp, disa-stig, nist-800-53 | exakte Benchmark-/Control-Quelle, Anwendbarkeit, Ergebnisse pro Control und menschliche Disposition |
| AI Tools | ollama, alpaca, aider, codex-cli | gepinnte Source-/Package-Provenienz, Model-Download-Grenze, Launch-Test und Ressourcenbedarf |
Die Beispiele sind keine Kompatibilitätsmatrix. Ein Feature-Name kann existieren, während eine konkrete Distributions-Implementierung noch partiell ist.
Feature, Paket und Service sind verschieden
os.featureswählt registrierte Build-Module.os.packagesfragt den nativen Package Manager nach konkreten Paketen.os.servicesliefert benannte Enablement- und Konfigurationsabsicht.
Beispiel:
{
"os": {
"features": ["ssh", "firewall"],
"packages": ["curl", "jq"],
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 22,
"disable_password_auth": true
}
}
]
}
}Eine gültige Service-Config kann trotzdem Keys enthalten, die der Generator nicht verarbeitet. Normalisiertes Rezept und getesteten Gast prüfen.
Sicherheits- und Compliance-Labels
security-hardening installiert und konfiguriert eine allgemeine Hardening-Baseline. Es ist
nicht synonym mit einem CIS-Profil. hardening_level im Rezept ist ein Konfigurationslabel,
das zielspezifische Generatoren interpretieren; es ist keine Zertifizierung oder universelle
Zuordnung zu CIS Level 1 oder Level 2.
Das Feature cis-benchmarks hat einen spezifischeren Ubuntu-24.04-Level-1-Remediation-Pfad.
Andere Bases erhalten nicht dieselbe Rolle. Siehe CIS-Benchmark-Nachweis
für die exakte Grenze.
Ebenso begründet das Aktivieren eines Features für GxP, HIPAA, SOC 2, PCI DSS, NIST oder DISA keine organisatorische Compliance. Es kann Pakete, Konfiguration und Tests liefern, die Nachweis für eine separat geführte Bewertung liefern.
Features sicher kombinieren
- Mit der kleinsten Menge starten, die das angeforderte Verhalten ausdrückt.
- Rezept validieren und normalisierte Ausgabe auf verworfene oder abgeleitete Felder prüfen.
- Erweiterten Paket- und Hook-Plan prüfen.
- Einmal bauen und dauerhafte Build-ID verfolgen.
- Feature-spezifische Assertions im gebooteten Gast ausführen.
- Fehler und beabsichtigte Ausnahmen explizit dokumentieren.
- Weiteres Feature erst hinzufügen, wenn die aktuelle Baseline verstanden ist.
Für die kanonische JSON-Form siehe Rezept-Schema.