本頁說明如何使用基礎架構管理工具,預覽在 Terraform 設定中定義的資源部署作業。
預覽畫面會說明如何啟動特定 Terraform 設定的動作。建立新的部署作業或更新部署作業前,您可以預覽部署作業,驗證預計要佈建的資源。
預覽會執行 Terraform plan
指令。本頁面假設您已熟悉 Terraform。詳情請參閱「Terraform 和 Infrastructure Manager」。
如要建立預覽版本,Terraform 設定必須與支援的 Terraform 版本相容。
事前準備
- 啟用 Infra Manager。
- 請確認您具備建立預覽畫面的 IAM 權限:
roles/config.admin
。 - 請確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
- 找出要預覽的 Terraform 設定。請確認這項 Terraform 設定符合限制條件,包括設定不含機密資料。
預覽部署更新
您用來更新部署作業的 Terraform 設定,可以儲存在儲存值區或 Git 存放區中。
您也可以使用這個 Terraform 設定來預覽更新內容。
使用儲存在 Cloud Storage 值區中的 Terraform 設定進行預覽
更新部署作業時,部分現有資源可能不會變更。預覽更新時,系統會顯示要配置或刪除的資源,以及不打算修改的資源。
找出要更新的部署。
請確認 Terraform 設定已上傳至 Cloud Storage 值區。詳情請參閱「將設定上傳至儲存體儲存空間桶」。
您可以使用儲存值區控管設定的存取權。您也可以部署儲存在 Git 存放區或本機電腦中的 Terraform 設定。
如要預覽更新內容,請按照下列步驟操作:
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=VALUE 和 INPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以將資源部署至
project_id=my-project
專案。如果所有輸入值皆已在設定中預設定義,則可選擇使用此旗標。
選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。
除非您在預覽指令中指定新的值,否則部署作業中的欄位 (例如 Terraform 設定、變數和服務帳戶) 會自動合併至預覽畫面。
建立預覽畫面後,您可以匯出及查看結果,查看部署計畫。
使用儲存在 Git 存放區中的 Terraform 設定進行預覽
更新部署作業時,部分現有資源可能不會變更。預覽更新時,系統會顯示要配置或刪除的資源,以及不打算修改的資源。
- 如果您的 Terraform 設定儲存在私人 Git 存放區中,且您尚未連線,請務必使用 Cloud Build 連線至 GitHub 主機和 GitHub 存放區,讓 Infra Manager 存取存放區。
如要更新部署,請按照下列步驟操作:
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=VALUE 和 INPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以將資源部署至
project_id=my-project
專案。如果所有輸入值皆已在設定中預設定義,則可選擇使用此旗標。
選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。
除非您在預覽指令中指定新的值,否則部署作業中的欄位 (例如 Terraform 設定、變數和服務帳戶) 會自動合併至預覽畫面。
建立預覽畫面後,您可以匯出及查看結果,查看部署計畫。
後續步驟
- 匯出及查看預覽結果
- 使用 Infra Manager 部署資源。
- 自動進行部署。
- 進一步瞭解 搭配使用 Infra Manager 的 Terraform。