ビルド機能
フィーチャーは名前付きのビルド モジュールです。そのレジストリ エントリでは、1 つ以上のディストリビューション ファミリのパッケージを宣言でき、ビルド フック、エイリアス、機能メタデータ、ゲスト アサーションも含めることができます。
機能の追加は意図を表現します。それ自体では、すべてのパッケージが利用可能であったこと、すべてのフックが実行されたこと、またはその結果の動作がターゲット イメージで機能したことを証明するものではありません。レシピの検証、ビルドの完了、ゲストの検証は別のゲートです。
現在の機能セットを検索する
デプロイされた 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 | 正確なベンチマーク/コントロール ソース、適用性、コントロールごとの結果、および人間の性質 |
| AIツール | 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 の名前が付いた機能を有効にしても、組織のコンプライアンスは確立されません。個別に管理される評価に証拠を提供するパッケージ、構成、テストを追加できます。
機能を安全に組み合わせる
- 要求された動作を表現する最小のセットから始めます。
- レシピを検証し、ドロップされたフィールドまたは推論されたフィールドの正規化された出力を検査します。
- 拡張されたパッケージとフック計画を確認します。
- 一度ビルドすると、その永続的なビルド ID に従います。
- ブートされたゲストで機能固有のアサーションを実行します。
- 失敗と意図的な例外を明示的に記録します。
- 現在のベースラインを理解した後でのみ、別の機能を追加します。
正規の JSON 形式については、レシピスキーマ を参照してください。