預覽部署

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

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

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

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

事前準備

  1. 啟用 Infra Manager
  2. 請確認您具備建立預覽畫面的 IAM 權限:roles/config.admin
  3. 請確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
  4. 找出要預覽的 Terraform 設定。請確認這項 Terraform 設定符合限制條件,包括設定不含機密資料。
  5. 如果您想將 Terraform 設定儲存在儲存值區中,請務必將 Terraform 設定上傳至 Cloud Storage 值區。詳情請參閱「將設定上傳至儲存體儲存空間桶」。

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

預覽新的部署作業

您預覽的 Terraform 設定可以位於儲存值區或 Git 存放區中。

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

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

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

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

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

    取代:

    • 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 執行的專案。
    • 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。

    • 選用:ANNOTATION_KEYANNOTATION_VALUE 代表不限格式的文字鍵/值組合,可附加至 Infra Manager 部署作業。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。

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

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

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

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

如要更新儲存在 Git 存放區中的部署作業,請按照下列步驟操作:

  1. 如果您使用的是私人 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 \
        --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 \
        --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
    

取代:

  • 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 執行的專案。
  • 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。

  • 選用:ANNOTATION_KEYANNOTATION_VALUE 代表不限格式的文字鍵/值組合,可附加至 Infra Manager 部署作業。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。

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

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

預覽部署作業後,您可以建立部署作業來調度資源。詳情請參閱「部署資源」。

後續步驟