Google Cloud 上的 Terraform 總覽

Hashicorp Terraform 是一項基礎架構即程式碼 (IaC) 工具,可讓您佈建及管理雲端基礎架構。Terraform 提供名為「供應工具」的外掛程式,可讓您與雲端服務供應商和其他 API 互動。您可以使用 Google Cloud的 Terraform 供應器 (Google Cloud provider) 佈建及管理 Google Cloud基礎架構。

使用 Terraform 的好處

本節將說明使用 Terraform 佈建及管理 Google Cloud 基礎架構的部分優點:

  • Terraform 是最常用來佈建及自動化Google Cloud 基礎架構的工具。您可以使用 Google Cloud供應器,以相同的宣告式語法和工具設定及管理所有 Google Cloud 資源。
  • Terraform 可讓您指定基礎架構的偏好結束狀態。接著,您可以多次部署相同的設定,建立可重現的開發、測試和實際工作環境。
  • Terraform 可讓您產生執行計畫,顯示 Terraform 在您套用設定時會執行哪些作業。這樣就能避免您透過 Terraform 修改基礎架構時發生任何意外狀況。
  • Terraform 可讓您以模組的形式封裝及重複使用常見程式碼。模組會提供建立雲端資源的標準介面。這些區塊可提高可讀性,讓團隊以可讀的區塊來整理基礎架構,進而簡化專案。此外, Google Cloud會將多個有偏見的可部署模組發布為藍圖,並將入門範例發布為快速部署解決方案
  • Terraform 會記錄基礎架構的目前狀態,讓您有效管理狀態。Terraform 狀態檔案會追蹤部署中的所有資源。

使用 Terraform

Terraform 提供宣告式和設定導向語法,可用來編寫要佈建的基礎架構。使用這個語法,您可以在 Terraform 設定檔中定義基礎架構的偏好最終狀態。接著,您會使用 Terraform CLI 根據設定檔佈建基礎架構。

下列步驟說明 Terraform 的運作方式:

  1. 您可以在 Terraform 設定檔中說明要佈建的 Google Cloud 基礎架構。您不需要撰寫程式碼來說明如何佈建這項設定。
  2. 您執行 terraform plan 指令,該指令會評估設定並產生執行計畫。您可以查看計畫,並視需要進行變更。
  3. 接著,您執行 terraform apply 指令,執行下列動作:
    • 這項服務會在背景中叫用對應的 Google Cloud API,根據執行計畫佈建基礎架構。
    • 這會建立 Terraform 狀態檔案,這是將設定檔中的資源與實際基礎架構中的資源進行 JSON 格式對應的檔案。Terraform 會使用這個檔案瞭解基礎架構的最新狀態,並決定何時建立、更新及刪除資源。
  4. 接著,當您執行 terraform apply 時,Terraform 會使用狀態檔案中的對應項目,將現有基礎架構與程式碼進行比較,並視需要進行更新:
    • 如果設定檔中定義的資源物件不存在於狀態檔案中,Terraform 會建立該物件。
    • 如果狀態檔案中存在資源物件,但其設定與設定檔不同,Terraform 會更新資源,使其符合設定檔。
    • 如果狀態檔案中的資源物件與設定檔相符,Terraform 就不會變更該資源。

Google Cloud 供應者

您可以透過兩種供應商來佈建及管理 Google Cloud 基礎架構:

  • google:使用這個供應工具來佈建及管理 Google Cloud API。
  • google-beta:使用這個供應工具來佈建及管理 Google CloudBeta 版 API。

如需使用這些供應工具的操作說明,請參閱 Google Cloud 供應工具設定參考資料

googlegoogle-beta 供應器是使用名為 Magic Modules 的工具開發而成。Magic Modules 可讓提供者針對單一程式碼集進行變更,並同時開發 googlegoogle-beta 供應器。

您可以按照Magic Modules 貢獻指南中的指示,使用 Magic Modules 為 Google Cloud 供應器做出貢獻。

後續步驟