預覽部署

本頁面說明如何使用 Infrastructure Manager,預覽 Terraform 設定中定義的資源部署作業。

預覽畫面會說明執行特定 Terraform 設定的操作。建立新部署作業或更新部署作業前,您可以預覽部署作業,確認預計佈建的資源。

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

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

事前準備

  1. 啟用 Infra Manager。
  2. 確認您具備建立預先發布版所需的 Identity and Access Management 權限:roles/config.admin。
  3. 確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
  4. 找出要預覽的 Terraform 設定。請確保這項 Terraform 設定符合限制,包括不含機密資料。
  5. 如要將 Terraform 設定儲存在 Storage bucket,請務必將 Terraform 設定上傳至 Cloud Storage bucket。詳情請參閱「將設定上傳至 Storage bucket」。

    儲存空間 bucket 可讓您控管設定的存取權。您也可以部署儲存在 Git 存放區或本機電腦中的 Terraform 設定。

預覽新部署作業

您預覽的 Terraform 設定可以位於 Storage bucket 或 Git 存放區。

使用儲存在 Cloud Storage bucket 的 Terraform 設定預覽

  1. 請務必將 Terraform 設定上傳至 Cloud Storage bucket。詳情請參閱「將設定上傳至 Storage bucket」。

    儲存空間 bucket 可讓您控管設定的存取權。您也可以部署儲存在 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 \
    --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" \
    --provider-source=SERVICE_MAINTAINED

    更改項目:

    • 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 是儲存設定的 Storage bucket 名稱。
    • OBJECT_NAME 是設定檔的物件名稱。這個物件可以是目錄或 ZIP 檔案,但不能是 Terraform 檔案。如果使用物件版本管理功能,也可以指定物件的版本編號。詳情請參閱「使用版本化物件」。

      如果儲存空間值區是 Terraform 設定的根路徑,則可不填寫 OBJECT_NAME。

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

      如果設定中預設定義了所有輸入值,則這個旗標為選用。

    • 選用:TERRAFORM_VERSION:Infra Manager 用來建立預覽畫面的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,系統預設會使用 Terraform 最新支援的免費方案版本 (1.5.7)。如要預覽付費版本 (例如 1.16.5),必須明確指定版本。預覽付費 Terraform 版本不會產生費用。

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

    • 選用:PROVIDER_SOURCE:決定部署作業使用的 Google Cloud Terraform 供應商。設為 SERVICE_MAINTAINED,即可使用 Infra Manager 維護的 Terraform 供應商。如要使用 HashiCorp 維護的 Terraform 供應商,請省略這個欄位。詳情請參閱「使用 Google Cloud的 Terraform 供應商」。

    除非您在預覽指令中指定新值,否則 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 \
    --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" \
    --provider-source=SERVICE_MAINTAINED

更改項目:

  • 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=VALUE 和 INPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以指定部署資源的專案,例如 project_id=my-project。

    如果設定中預設定義了所有輸入值,則這個旗標為選用。

  • 選用:TERRAFORM_VERSION:Infra Manager 用來建立預覽畫面的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,系統預設會使用 Terraform 最新支援的免費方案版本 (1.5.7)。如要預覽付費版本 (例如 1.16.5),必須明確指定版本。預覽付費 Terraform 版本不會產生費用。

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

  • 選用:PROVIDER_SOURCE:決定部署作業使用的 Google Cloud Terraform 供應商。設為 SERVICE_MAINTAINED,即可使用 Infra Manager 維護的 Terraform 供應商。如要使用 HashiCorp 維護的 Terraform 供應商,請省略這個欄位。詳情請參閱「使用 Google Cloud的 Terraform 供應商」。

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

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

預覽 Deployment 後,您可以建立 Deployment 來佈建資源。詳情請參閱「部署資源」。

後續步驟