本頁說明如何使用 Infrastructure Manager 預覽 Terraform 設定中定義的資源部署作業。
預覽功能會說明啟動特定 Terraform 設定的動作。建立或更新部署作業前,您可以先預覽部署作業,確認預計要佈建的資源。
預覽會執行 Terraform plan
指令。本頁面假設您已熟悉 Terraform。詳情請參閱「Terraform 和 Infrastructure Manager」。
如要建立預覽版本,Terraform 設定必須與其中一個支援的 Terraform 版本相容。
事前準備
- 啟用 Infra Manager。
- 確認您具備建立預覽畫面所需的 Identity and Access Management 權限:
roles/config.admin
。 - 請確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
- 找出要預覽的 Terraform 設定。請確保這個 Terraform 設定符合限制,包括設定不含機密資料。
如要將 Terraform 設定儲存在儲存空間值區中,請務必將 Terraform 設定上傳至 Cloud Storage 值區。詳情請參閱「將設定上傳至儲存空間 bucket」。
您可以透過儲存空間 bucket 控制設定的存取權。您也可以部署儲存在 Git 存放區或本機電腦中的 Terraform 設定。
預覽新的部署作業
您預覽的 Terraform 設定可以位於儲存空間值區或 Git 存放區。
使用儲存在 Cloud Storage bucket 中的 Terraform 設定進行預覽
確認 Terraform 設定已上傳至 Cloud Storage 值區。詳情請參閱「將設定上傳至儲存空間 bucket」。
您可以透過儲存空間 bucket 控制設定的存取權。您也可以部署儲存在 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 \ --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 是儲存設定的儲存空間值區名稱。
OBJECT_NAME 是設定檔的物件名稱。這個物件可以是目錄或 zip 檔案,但不能是 Terraform 檔案。如果您使用物件版本管理,也可以指定物件的產生編號。詳情請參閱「使用已設定版本的物件」。
如果儲存空間 bucket 是 Terraform 設定的根路徑,則 OBJECT_NAME 為選用項目。
INPUT_1_NAME=VALUE 和 INPUT_2_NAME=VALUE:Terraform 設定中的任何輸入值,包括預設未定義的值。舉例來說,您可以將部署資源的專案指定為
project_id=my-project
。如果設定中預設定義了所有輸入值,則這個旗標為選用。
選用:TERRAFORM_VERSION:Infra Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果移除這個選用旗標,系統會使用最新支援的 Terraform 版本。
選用:ANNOTATION_KEY 和 ANNOTATION_VALUE 代表可附加至 Infra Manager 部署作業的不限格式文字鍵/值組合。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。
- 選用:PROVIDER_SOURCE:決定部署作業使用的 Terraform 提供者。 Google Cloud 設為
SERVICE_MAINTAINED
,即可使用 Infra Manager 維護的 Terraform 供應商。如要使用 HashiCorp 維護的 Terraform 供應商,請省略這個欄位。詳情請參閱「使用 Google Cloud 的 Terraform 供應商」。
除非您在預覽指令中指定新值,否則部署作業中的欄位 (例如 Terraform 設定、變數和服務帳戶) 會自動合併至預覽畫面。
預覽作業建立完成後,您可以匯出並查看結果,以便審查部署作業計畫。
使用儲存在 Git 存放區中的 Terraform 設定進行預覽
更新部署作業時,部分現有資源可能不會變更。預覽更新會顯示預計要佈建或刪除的資源,以及預計不會修改的資源。
如要更新儲存在 Git 存放區中的部署作業,請按照下列步驟操作:
如果您使用私人的 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 \ --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 版本。
選用:ANNOTATION_KEY 和 ANNOTATION_VALUE 代表可附加至 Infra Manager 部署作業的不限格式文字鍵/值組合。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。
- 選用:PROVIDER_SOURCE:決定部署作業使用的 Terraform 提供者。 Google Cloud 設為
SERVICE_MAINTAINED
,即可使用 Infra Manager 維護的 Terraform 供應商。如要使用 HashiCorp 維護的 Terraform 供應商,請省略這個欄位。詳情請參閱「使用 Google Cloud 的 Terraform 供應商」。
除非您在預覽指令中指定新值,否則部署作業中的欄位 (例如 Terraform 設定、變數和服務帳戶) 會自動合併至預覽畫面。
預覽作業建立完成後,您可以匯出並查看結果,以便審查部署作業計畫。
預覽部署作業後,即可建立部署作業來佈建資源。詳情請參閱部署資源。
後續步驟
- 匯出及查看預覽結果
- 使用 Infra Manager 部署資源。
- 自動部署。
- 進一步瞭解如何搭配使用 Terraform 與 Infrastructure Manager。