始める前に
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
概要
カスタマイズの手順が正常に完了すると、オーケストレーターは VM ブートディスクを一時的なテストイメージ(image-builder-test-images ファミリーの image-builder-test-image-BUILD_ID という名前)としてエクスポートします。
オーケストレーターは、このイメージからテスト VM を起動し、一連のシステムテストを実行します。Image Builder は、テスト結果を標準の JUnit XML 形式で Cloud Build ログに直接出力します。
特定の検証テストのトラブルシューティング
各検証テストの一般的なエラーと診断手順を確認します。
Intel IDPF ドライバの検証
このテストでは、サポートされている VM インスタンスが物理ネットワーク インターフェースに高パフォーマンスの Intel Infrastructure Data Path Function(idpf)ドライバを読み込むことを確認します。
- 失敗条件: VM が汎用ネットワーク アダプタ パッケージに戻るか、ゲスト カーネルにアクティブな
idpfドライバ モジュールがない場合、VM は検証に失敗します。 - 解決策:
- ベース オペレーティング システムに IDPF と互換性のあるカーネル バージョンがあることを確認します。
- 標準のネットワーク ユーティリティがドライバを削除またはブロックリストに登録していないことを確認します。
- カスタム カーネルビルドの場合は、
CONFIG_IDPFが構成されていることを確認します。
ネットワーキングとゲスト エージェントの検証
このテストでは、インスタンスに動作中のゲスト通信と標準化されたネットワーク インターフェース構成があることを確認します。
- 失敗条件: 次のいずれかの条件でテストが失敗します。
- ゲスト エージェント サービス マネージャー
SubStateにrunningステータスが表示されません。 - 非ループバック ネットワーク インターフェースがオンラインになっていません。
- インターフェース名が想定される標準パターン(
eth*やen*など)と一致しません。
- ゲスト エージェント サービス マネージャー
解決策:
ゲスト エージェントがインストールされ、起動時に開始するように構成されていることを確認します。
systemctl is-active google-guest-agentネットワーク構成(netplan テンプレートや ifupdown テンプレートなど)でプライマリ仮想インターフェースが無効になっていないことを確認します。
セキュアブートの検証
このテストは、UEFI セキュアブートが有効であり、システムがイメージに対してゲスト OS カーネル署名検証を適用していることをアサートします。
- 失敗条件: Compute Engine UEFI 変数が
SecureBootが1ではない、またはSetupModeが0ではないと報告した場合、テストは失敗します。 解決策:
- イメージに有効な署名鍵が含まれていることを確認します。
imagebuilder.yamlファイルで、宛先ブロックのguestOsFeaturesにUEFI_COMPATIBLEが含まれていることを確認します。destinations: - diskImage: guestOsFeatures: - UEFI_COMPATIBLE
確認を一時停止または再開する
このテストでは、Compute Engine API を使用してテスト VM を一時停止し、VM の実行が再開された後、ゲストの完全な再起動をトリガーせずに接続が復元されることをアサートします。
- 失敗条件: インスタンスが復帰時に再起動した場合、サスペンド中にハングした場合、ネットワーク ping の復元に失敗した場合、テストは失敗します。
- 解決策:
- ゲスト オペレーティング システムの ACPI サービスと電源ポリシーが有効になっており、ACPI イベントに応答するように構成されていることを確認します。
- ゲスト システムログ(
/var/log/syslogまたは/var/log/messages)を調べて、カスタム デーモンがシステム スリープ リクエストをブロックしているかどうかを確認します。
検証テストをスキップする
本番環境イメージを検証することをおすすめしますが、imagebuilder.yaml ファイルの spec.config ブロックで skipSystemTests: true を設定すると、テスト中に検証テストをスキップできます。
spec:
config:
skipSystemTests: true