はじめてのビルド
このウォークスルーでは、カスタムイメージを 1 つ作成し、検証し、ビルドし、確認します。検証済みレシピは構成のチェックであり、ISO がビルドされたことや、要求した動作がすべて VM テストに合格したことの証明ではありません。
開始前
- 会話とビルドがアカウントに紐づくようサインインする。
- 1 つの OS と、少数のパッケージまたはサービスから始める。
- 要求が満たされたと証明する証拠を決める。パッケージの有無、サービス状態、待ち受けポート、GUI 動作は別々のアサーションである。
初回は、チャットに資格情報やプライベートリポジトリ URL を入れない。シークレットは後からサポートされた資格情報ワークフローで追加し、イメージに焼き込まない。
1. 成果とそのチェックを述べる
例:
Build a Debian 13 server image with OpenSSH and curl.
Create a password-locked deploy user in the sudo group.
Verify that the image boots, the deploy user exists, the ssh service is
enabled, and curl is installed. Do not add Docker or a desktop.明示的な除外は、意図的な最小イメージと、プランナーが単に見落とした要求を区別するのに役立つ。
2. レシピプレビューを確認する
少なくとも次を確認する:
base_imageが要求したディストリビューションとリリースと一致している;- 要求したパッケージが
os.packagesにあるか、明示的な feature で供給されている; - ユーザー、グループ、サービス、ネットワーク、インストーラー、デスクトップの選択が要求と一致している;
scenariosに実際に必要なチェックが含まれている;- 要求されていないパッケージ、デスクトップ、インストーラー、資格情報、外部リポジトリが追加されていない。
同じ会話で変更を依頼する。フォローアップ要求はアクティブなレシピに適用される。Validate Recipe 使用時、バックエンドは直前の実質的なチャット要求を保持し、明示的要求がまだ欠けていればレシピをブロックする。生成された制御文は会話の意図を消してはならない。
検証は、利用できないパッケージ、上流の障害、ディストロ固有のビルド失敗、テストのない動作を見逃すことがある。プレビューは提案された契約として読む。
3. ビルドは一度だけ開始する
検証済みプレビューで Start Build を選ぶ。成功したクリックでビルド ID が作成される。問題報告時はその ID を残す。パーセンテージやスクリーンショットだけより信頼できる。
ビルドパネルには queued、planning、configured、building、finalizing、completed、failed、cancelled などの状態が表示される。queued のビルドはワーカー容量や起動回復を待っている場合がある。表示パーセンテージは進捗の見込みであり、締切ではない。パッケージングやファイルシステムのステップによって所要時間は大きく異なる。
元のチャットビューを離れても、ライブビルドパネルでビルドを追跡できる。再読み込みは永続ビルド状態とイベントストリームで再接続するはずである。ビルド ID が作成されなかった、または前のビルドが終端状態に達したと UI が報告しない限り、Start Build を繰り返しクリックしない。
4. イメージ完了とテスト完了を分ける
イメージは、選択した VM 検証が終端状態に達する前に完了することがある。両方を読む:
- build status: 永続アーティファクトが組み立てられ確定したか;
- test status:
not_run、running、passed、failed、またはerror; - certification status(ある場合): 設定された証拠ポリシーの結果であり、汎用のセキュリティやハードウェア認証ではない。
テスト詳細を開く。要求した各アサーションが期待するゲストに対して実行されたか確認し、失敗やスキップされたチェックを調べる。起動テスト合格はアプリケーションが開くことの証明にならない。パッケージ記録はサービスが健全であることの証明にならない。
5. アーティファクトを確認してダウンロードする
ダウンロード前に、最終レシピとパッケージ/テスト証拠を要求と照合する。表示されている場合はビルド ID、アーティファクトファイル名、サイズ、チェックサムを記録する。
アーティファクト確定が完了してからビルドのダウンロード操作を使う。ダウンロードパッケージに ISO と関連証拠が含まれる場合がある。ダウンロードが Failed to create download package、not found、または別の JSON エラーを返す場合:
- ビルド所有者としてサインインしていることを確認する;
- 古い会話カードではなく、正確なビルドを開き直す;
- アーティファクト確定が完了し ISO が一覧にあることを確認する;
- 一度再試行する;
- ビルド ID、タイムスタンプ、表示された build/test/finalization 状態、正確なエラーテキストを報告する。
所有権やパッケージングエラーを回避するために再ビルドだけはしない。有用な診断状態が失われ、別のビルドスロットを消費する可能性がある。
6. 想定コンテキストで ISO をテストする
OpenFactory の VM で起動するのは、設定された仮想環境のみを検証する。インストール可能なデスクトップでは、使い捨てディスクでインストーラーパスもテストする。物理デプロイでは、代表ハードウェアでファームウェアモード、ストレージ、グラフィックス、ネットワーク、サスペンド、入力デバイス、更新、リカバリを別途テストする。
よくある復旧手順
| 症状 | 対応 |
|---|---|
| レシピは検証するが要求を省略する | ビルドしない。欠けている要求を明示し、再度検証する |
| ビルドが queued | ビルド ID を保持し、キュー/回復状態を確認する。重複開始を避ける |
| 進捗が変わらないように見える | 停止と判断する前に現在のステージと直近のログ活動を確認する |
| ビルド失敗 | 最終サマリーだけでなく最初の原因エラーを読む。原因を理解してから修正または再試行する |
| テスト失敗 | 製品欠陥、アサーション欠陥、ゲスト起動問題、インフラエラーを区別する |
| ダウンロードがない、または禁止 | 再ビルド前に所有者セッション、確定状態、正確なビルド ID を確認する |