使用 Infrastructure Manager 部署基礎架構

本頁說明如何使用 Infrastructure Manager 佈建 Terraform 設定中定義的一組Google Cloud 資源。

如要預覽部署作業,但不佈建資源,請參閱「預覽部署作業」。

您可以部署至多個專案和多個地點。服務帳戶需要資源和部署資源的專案的權限。如需權限清單,請參閱「使用 IAM 控管存取權」。

本頁面假設您已熟悉 Terraform。詳情請參閱 Terraform 和 Infra Manager

事前準備

  1. 啟用 Infra Manager
  2. 請確認您具備建立部署作業所需的 IAM 權限:roles/config.admin
  3. 請確認您有具備必要權限的服務帳戶。詳情請參閱「設定服務帳戶」。
  4. 找出要部署的 Terraform 設定。請確認這項 Terraform 設定符合限制條件。具體來說,請確認設定檔不含機密資料。
  5. 如果您想在設定資源前預覽部署作業,請參閱「預覽部署作業」。
  6. 確認機構與所需基礎架構相關聯的產品配額。如果您要建立的基礎架構超過貴機構在部署作業中使用的產品配額,就可能發生部署錯誤。詳情請參閱配額與限制

授予設定專屬權限

如要部署 Terraform 設定中指定的 Google Cloud 資源,您用來呼叫 Infra Manager 的服務帳戶,需要針對要部署的資源具備必要權限。

除了使用 Infra Manager 服務所需的權限外,您還需要這些權限。

如要進一步瞭解如何為 Google Cloud 資源授予權限,並確保您有權存取所需的專案,請參閱「設定服務帳戶」。

將私人 Git 存放區和主機連結至 Cloud Build

如果您要從私人 Git 存放區部署 Terraform 設定,就必須將 Git 主機和存放區連結至 Cloud Build。

使用 Terraform 設定建立部署作業

您可以使用 Infra Manager 以多種方式部署 Terraform 設定:

  • 建議做法:請在 Google Cloud 控制台中使用 Infra Manager 選取來源、查看部署詳細資料、預覽並部署 Terraform 設定。您可以使用 Google Cloud 控制台的 Infro Manager,從 Cloud Storage 值區和 Git 存放區部署。
  • 使用 Google Cloud CLI 中的 Infra Manager,從下列位置部署 Terraform 設定:
    • Cloud Storage 值區
    • Git 存放區
    • 本地目錄

如需 Infra Manager 適用的 Terraform 設定範例和範本,請參閱「Terraform 模組和藍圖 Google Cloud」。

選取所選工作流程的分頁,即可進一步瞭解如何建立部署作業。

控制台

本節說明如何在 Google Cloud 主控台中使用 Infra Manager 部署 Terraform 設定。

  1. 前往 Google Cloud 控制台的「Infra Manager」頁面。

    前往 Infra Manager

  2. 按一下「建立」建立新的部署作業。
  3. 在「部署作業詳細資料」頁面中,設定部署作業的初始參數。

    取代:

    • 部署 ID:在「Deployment ID」欄位中,輸入部署作業的描述性名稱。 如要進一步瞭解命名限制,請參閱「部署名稱」說明文件。
    • 區域:從下拉式選單中選擇支援的區域
    • Terraform 版本:從下拉式選單中選擇支援的 Terraform 版本。系統會根據您選取的「區域」自動填入可用的 Terraform 版本清單。
    • 服務帳戶:選取現有的服務帳戶或建立新的服務帳戶。Infra Manager 會根據 Terraform 設定中列出的基礎架構,自動驗證權限。如要進一步瞭解如何使用服務帳戶和 Infra Manager,請參閱「設定服務帳戶」。
    • Terraform 設定來源:按一下切換按鈕,選取要部署的 Terraform 設定來源,可選項包括 GitCloud Storage
      • 如果是 Git,請將以下內容替換為:
        • Git 存放區:提供公開或私人 Git 存放區網址、分支或標記。
          如果您提供私人 Git 存放區,請務必將主機和存放區連結至 Cloud Build
        • 選用:Git 目錄:Git 存放區中含有 Terraform 設定的目錄。
        • 選用:Git 參照:設定的 Git 參照。如果您沒有指定參照,系統會使用 Git 存放區的預設設定分支。
      • 在「Cloud Storage bucket」(Cloud Storage 值區) 中,將以下內容替換為:
        • Source:儲存設定的儲存空間值區名稱。

    按一下「繼續」

  4. 在「Terraform 詳細資料」頁面中,使用「鍵」和「值」欄位,在 Terraform 設定中填入輸入值清單。

    這些值可以是 Terraform 設定中的任何輸入值,包括預設未定義的值。如果所有輸入值都是在 Terraform 設定中預設定義,則這些值為選用值。按一下 [繼續]

  5. 在「進階詳細資料」頁面中,為部署作業設定選用參數。

    取代:

    • 標籤:標籤和註解是不限格式的鍵/值組合。您可以使用這些屬性附加與資源相關的任意資訊。詳情請參閱「註解」說明文件。
    • 工作站集區:Cloud Build 工作要執行的工作站集區資源。工作站集區的格式為 projects/{project}/locations/{location}/workerPools/{workerPoolId}
    • 構件 Cloud Storage 值區:Cloud Storage 中 Cloud Build 記錄檔和構件的所在位置。路徑格式為 gs://{bucket}/{folder}
  6. 點選「建立部署作業」,即可開始部署 Terraform 設定。在「部署作業」頁面中,系統會將您的部署作業加入清單,並顯示狀態
  7. 如要進一步瞭解部署作業,請選取部署作業前往「部署作業詳細資料」頁面。
  8. 大功告成!您已使用 Infra Manager 部署 Terraform 設定。

gcloud CLI

本節說明如何部署儲存在 Cloud Storage 值區中的 Terraform 設定。您可以透過儲存值區控管設定的存取權。

  1. 請確認 Terraform 設定位於 Cloud Storage 值區中。詳情請參閱「將設定上傳至儲存體儲存空間」。
  2. 如果儲存空間值區位於執行 Infra Manager 的專案以外的專案,則必須確保 Infra Manager 的服務帳戶具有該值區的讀取權限。詳情請參閱「設定服務帳戶」。

    如果儲存體值區與 Infra Manager 位於同一個專案中,則系統已啟用該值區的讀取權限。

  3. 部署 Terraform 設定:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
替換:
  • PROJECT_ID:執行 Infra Manager 的專案 ID。
  • LOCATION:執行 Infra Manager 的位置。如需有效位置的清單,請參閱「Infra Manager 位置」。
  • DEPLOYMENT_ID:您指定的部署 ID。如要進一步瞭解部署 ID 的限制條件,請參閱「部署名稱」。
  • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。這通常是 Infra Manager 執行的專案。
  • SERVICE_ACCOUNT:您用來呼叫 Infra Manager 的服務帳戶名稱。
  • BUCKET_NAME:設定儲存位置的儲存體值區名稱。
  • OBJECT_NAME:設定檔的物件名稱。這個物件可以是目錄或 ZIP 檔案,但不能是 Terraform 檔案。如果您使用物件版本管理,也可以指定物件的產生編號。詳情請參閱「使用版本化物件」。

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

  • 選用:QUOTA_VALIDATION:這個值會決定在您建立部署作業時,是否要啟用或強制執行 Terraform 設定檔中資源的配額驗證。可能的值包括:
    • ENABLED:在 Terraform 設定檔中啟用計算資源配額驗證功能。提供配額不足的資源資訊。
    • ENFORCED:強制執行配額驗證,如果 Terraform 設定檔中定義的基礎架構沒有足夠的配額,部署作業就會失敗。

    如果未定義 QUOTA_VALIDATION,系統就會停用 Terraform 設定檔的配額驗證功能。這是預設值。配額驗證適用於有限的 Google Cloud 資源。詳情請參閱「配額與限制」。

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

    如果所有輸入值都是在設定中預設定義,則可選擇使用此標記。

  • 選用:TERRAFORM_VERSION:Infras Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。
  • 選用:ANNOTATION_KEYANNOTATION_VALUE 代表不限格式的文字鍵/值組合,可附加至 Infra Manager 部署作業。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。

gcloud CLI

本節說明如何使用儲存在 Git 存放區中的 Terraform 設定。

  1. 確認您已安裝 Git。
  2. 如果 Terraform 設定儲存在私人 Git 存放區中,請確認您的 Git 主機和存放區已連結至 Cloud Build
  3. 部署 Terraform 設定:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
替換:
  • PROJECT_ID:執行 Infra Manager 的專案 ID。
  • LOCATION:執行 Infra Manager 的位置。如需有效位置的清單,請參閱「Infra Manager 位置」。
  • DEPLOYMENT_ID:您指定的部署 ID。如要進一步瞭解部署 ID 的限制條件,請參閱「部署名稱」。
  • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。這通常是 Infra Manager 執行的專案。
  • SERVICE_ACCOUNT:您用來呼叫 Infra Manager 的服務帳戶名稱。
  • GIT_REPO:Git 存放區。
  • DIRECTORY:包含 Terraform 設定的目錄。
  • 選用:REF:設定的 Git 參照。參考資料為選填項目。如果您未指定參照,系統會使用 Git 存放區的預設設定分支。
  • 選用:QUOTA_VALIDATION:這個值會決定在您建立部署作業時,是否要啟用或強制執行 Terraform 設定檔中資源的配額驗證。可能的值包括:
    • ENABLED:在 Terraform 設定檔中啟用計算資源配額驗證功能。提供配額不足的資源資訊。
    • ENFORCED:強制執行配額驗證,如果 Terraform 設定檔中定義的基礎架構沒有足夠的配額,部署作業就會失敗。

    如果未定義 QUOTA_VALIDATION,系統就會停用 Terraform 設定檔的配額驗證功能。這是預設值。配額驗證適用於有限的 Google Cloud 資源。詳情請參閱「配額與限制」。

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

    如果所有輸入值都是在設定中預設定義,則可選擇使用此標記。

  • 選用:TERRAFORM_VERSION:Infras Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。
  • 選用:ANNOTATION_KEYANNOTATION_VALUE 代表不限格式的文字鍵/值組合,可附加至 Infra Manager 部署作業。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。

gcloud CLI

本節說明如何使用儲存在本機電腦中的 Terraform 設定。

  1. 如果您使用 Cloud Shell,則需要將設定上傳至 Cloud Shell。詳情請參閱「使用 Cloud Shell 管理檔案」。
  2. 部署 Terraform 設定:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
替換:
  • PROJECT_ID:執行 Infra Manager 的專案 ID。
  • LOCATION:執行 Infra Manager 的位置。如需有效位置的清單,請參閱「Infra Manager 位置」。
  • DEPLOYMENT_ID:您指定的部署 ID。如要進一步瞭解部署 ID 的限制條件,請參閱「部署名稱」。
  • SERVICE_ACCOUNT_PROJECT_ID 是服務帳戶的專案 ID。這通常是 Infra Manager 執行的專案。
  • SERVICE_ACCOUNT:您用來呼叫 Infra Manager 的服務帳戶名稱。
  • LOCAL_DIRECTORY:儲存 Terraform 設定的本機目錄。如果您使用 Cloud Shell,則這是 Cloud Shell 中設定儲存的目錄。
  • 選用:QUOTA_VALIDATION:這個值會決定在您建立部署作業時,是否要啟用或強制執行 Terraform 設定檔中資源的配額驗證。可能的值包括:
    • ENABLED:在 Terraform 設定檔中啟用計算資源配額驗證功能。提供配額不足的資源資訊。
    • ENFORCED:強制執行配額驗證,如果 Terraform 設定檔中定義的基礎架構沒有足夠的配額,部署作業就會失敗。

    如果未定義 QUOTA_VALIDATION,系統就會停用 Terraform 設定檔的配額驗證功能。這是預設值。配額驗證適用於有限的 Google Cloud 資源。詳情請參閱「配額與限制」。

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

    如果所有輸入值都是在設定中預設定義,則可選擇使用此標記。

  • 選用:TERRAFORM_VERSION:Infras Manager 用於建立部署作業的 Terraform 版本。如需支援的版本清單,請參閱「支援的 Terraform 版本」。如果您移除這個選用標記,系統會使用最新的支援版本 Terraform。
  • 選用:ANNOTATION_KEYANNOTATION_VALUE 代表不限格式的文字鍵/值組合,可附加至 Infra Manager 部署作業。如要進一步瞭解註解和標籤的使用方式和限制,請參閱「註解和標籤」。

後續步驟