建置功能
功能是一個命名的建置模組。它的註冊表項可以聲明一個或多個發行版系列的包,還可能包括建立掛鉤、別名、功能元資料和來賓斷言。
添加功能表達了意圖。它本身並不能證明每個包都是可用的,每個鉤子都運行過,或者結果行為在目標圖像上有效。配方驗證、建造完成和訪客驗證是單獨的門。
尋找目前的功能集
在已部署的 OpenFactory 版本中使用功能選擇器或功能目錄 API。此輸出對於正在運行的版本具有權威性。靜態清單很快就會過時,並且某些註冊表項會被隱藏,因為它們支援內部固定裝置或不完整的整合。
在選擇功能之前,請檢查:
- 它是否對您的帳戶可見並啟用;
- 是否宣稱配方發行系列的包;
- 其外部來源是否固定且可檢索;
- 是否有斷言來證明您需要的行為;和
- 是否與另一個請求的模組衝突。
代表類別
此註冊表目前包含以下類別的模組:
| 類別 | 範例 | 需要的證據 |
|---|---|---|
| 桌面 | desktop-kde、desktop-gnome-minimal、krita、kdenlive | 會話類型、已安裝的軟體包、啟動器行為和真實的桌面冒煙測試 |
| 命令列和開發 | git、curl、python、nodejs、rust | 包/版本清單和可執行冒煙測試 |
| 基礎架構 | nginx、postgresql、redis、docker、ansible | 服務配置、啟用/運作狀態、連接埠與應用程式層級運作狀況 |
| 安全 | firewall、audit-logging、security-hardening、apparmor | 產生的策略、活動運行時狀態、負面測試和記錄的異常 |
| 合規為本 | cis-benchmarks、gxp、disa-stig、nist-800-53 | 準確的基準/控制來源、適用性、每個控制結果和人性化 |
| 人工智慧工具 | ollama、alpaca、aider、codex-cli | 固定來源/套件來源、模型下載邊界、啟動測試和資源需求 |
這些範例不是相容性矩陣。功能名稱可以存在,而特定的分發實作仍然是部分的。
功能、套餐和服務不同
os.features選擇已註冊的建置模組。os.packages向本機包管理器詢問特定包。os.services提供命名的啟用和配置意圖。
例如:
{
"os": {
"features": ["ssh", "firewall"],
"packages": ["curl", "jq"],
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 22,
"disable_password_auth": true
}
}
]
}
}有效的服務配置仍然可以包含生成器不使用的金鑰。檢查標準化配方並測試產生的來賓。
安全性和合規性標籤
security-hardening 安裝並配置通用強化基線。它不是 CIS 設定檔的同義詞。配方的hardening_level是由特定於目標的生成器解釋的配置標籤;它不是 CIS 1 級或 2 級的認證或通用映射。
cis-benchmarks 功能具有更具體的 Ubuntu 24.04 1 級修復路徑。其他基地不承擔相同的角色。請參閱CIS 基準證據 以了解確切的邊界。
同樣,啟用以 GxP、HIPAA、SOC 2、PCI DSS、NIST 或 DISA 命名的功能並不能建立組織合規性。它可以添加套件、配置和測試,為單獨管理的評估提供證據。
安全地組合功能
- 從表達所請求行為的最小集合開始。
- 驗證配方並檢查規範化輸出中是否存在丟棄或推斷的欄位。 3.審查擴充包和掛鉤計畫。
- 建置一次並遵循其持久建置 ID。
- 在引導的客戶機中執行特定於功能的斷言。
- 明確記錄故障和故意的異常情況。
- 僅在了解目前基線後再添加另一個功能。
有關規範的 JSON 形狀,請參閱食譜架構。