事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上您打算如何使用範例的分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設地區和區域。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 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 基礎架構資料路徑函式 (idpf) 驅動程式。
- 失敗條件:如果 VM 還原為一般網路介面卡套件,或客層核心缺少有效的
idpf驅動程式模組,VM 就會驗證失敗。 - 解決方法:
- 確認基礎作業系統的 Kernel 版本與 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