預覽部署更新

本頁說明如何使用基礎架構管理工具,預覽在 Terraform 設定中定義的資源部署作業。

預覽畫面會說明如何啟動特定 Terraform 設定的動作。建立新的部署作業或更新部署作業前,您可以預覽部署作業,驗證預計要佈建的資源。

預覽會執行 Terraform plan 指令。本頁面假設您已熟悉 Terraform。詳情請參閱「Terraform 和 Infrastructure Manager」。

如要建立預覽版本,Terraform 設定必須與支援的 Terraform 版本相容。

事前準備

  1. 啟用 Infra Manager
  2. 請確認您具備建立預覽畫面的 IAM 權限:roles/config.admin
  3. 請確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
  4. 找出要預覽的 Terraform 設定。請確認這項 Terraform 設定符合限制條件,包括設定不含機密資料。

預覽部署更新

您用來更新部署作業的 Terraform 設定,可以儲存在儲存值區或 Git 存放區中。

您也可以使用這個 Terraform 設定來預覽更新內容。

使用儲存在 Cloud Storage 值區中的 Terraform 設定進行預覽

更新部署作業時,部分現有資源可能不會變更。預覽更新時,系統會顯示要配置或刪除的資源,以及不打算修改的資源。

  1. 找出要更新的部署。

  2. 請確認 Terraform 設定已上傳至 Cloud Storage 值區。詳情請參閱「將設定上傳至儲存體儲存空間桶」。

    您可以使用儲存值區控管設定的存取權。您也可以部署儲存在 Git 存放區或本機電腦中的 Terraform 設定。

  3. 如要預覽更新內容,請按照下列步驟操作:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
    

    取代:

    • PROJECT_ID 是 Infrastructure Manager 執行所在的專案 ID。
    • LOCATION 是 Infra Manager 執行的位置。如需有效位置的清單,請參閱「Infrastructure Manager 位置」。
    • PREVIEW_ID 是您指定的預覽 ID。如要進一步瞭解預覽 ID 的限制條件,請參閱「預覽名稱」一節。
    • SERVICE_ACCOUNT 是您用來呼叫 Infra Manager 的服務帳戶名稱。
    • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。這通常是 Infra Manager 執行的專案。
    • DEPLOYMENT_ID 是您要更新的部署作業 ID。
    • BUCKET_NAME 是儲存設定的儲存空間值區名稱。
    • OBJECT_NAME 是設定檔的物件名稱。這個物件可以是目錄或 ZIP 檔案,但不能是 Terraform 檔案。如果您使用物件版本管理,也可以指定物件的產生編號。詳情請參閱「使用版本化物件」。

      如果儲存體儲存格是 Terraform 設定的根路徑,則 OBJECT_NAME 為選用項目。

    • INPUT_1_NAME=VALUEINPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以將資源部署至 project_id=my-project 專案。

      如果所有輸入值皆已在設定中預設定義,則可選擇使用此旗標。

    • 選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。

    除非您在預覽指令中指定新的值,否則部署作業中的欄位 (例如 Terraform 設定、變數和服務帳戶) 會自動合併至預覽畫面。

建立預覽畫面後,您可以匯出及查看結果,查看部署計畫。

使用儲存在 Git 存放區中的 Terraform 設定進行預覽

更新部署作業時,部分現有資源可能不會變更。預覽更新時,系統會顯示要配置或刪除的資源,以及不打算修改的資源。

  1. 如果您的 Terraform 設定儲存在私人 Git 存放區中,且您尚未連線,請務必使用 Cloud Build 連線至 GitHub 主機GitHub 存放區,讓 Infra Manager 存取存放區。
  2. 如要更新部署,請按照下列步驟操作:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --git-source-repo="GIT_REPO" \
        --git-source-directory="DIRECTORY" \
        --git-source-ref="REF" \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
    

    取代:

    • PROJECT_ID 是 Infrastructure Manager 執行所在的專案 ID。
    • LOCATION 是 Infra Manager 執行的位置。如需有效位置的清單,請參閱「Infrastructure Manager 位置」。
    • PREVIEW_ID 是您指定的預覽 ID。如要進一步瞭解預覽 ID 的限制條件,請參閱「預覽名稱」一節。
    • SERVICE_ACCOUNT 是您用來呼叫 Infra Manager 的服務帳戶名稱。
    • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。這通常是 Infra Manager 執行的專案。
    • DEPLOYMENT_ID 是您要更新的部署作業 ID。
    • GIT_REPO:Git 存放區。
    • DIRECTORY:包含 Terraform 設定的目錄。
    • REF:設定的 Git 參照。參考資料為選用項目。如果未指定參照,系統會使用 Git 存放區的預設設定分支。
    • INPUT_1_NAME=VALUEINPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以將資源部署至 project_id=my-project 專案。

      如果所有輸入值皆已在設定中預設定義,則可選擇使用此旗標。

    • 選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。

除非您在預覽指令中指定新的值,否則部署作業中的欄位 (例如 Terraform 設定、變數和服務帳戶) 會自動合併至預覽畫面。

建立預覽畫面後,您可以匯出及查看結果,查看部署計畫。

後續步驟