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 的運作方式:
- 您可以在 Terraform 設定檔中說明要佈建的 Google Cloud 基礎架構。您不需要撰寫程式碼來說明如何佈建這項設定。
- 您執行
terraform plan
指令,該指令會評估設定並產生執行計畫。您可以查看計畫,並視需要進行變更。 - 接著,您執行
terraform apply
指令,執行下列動作:- 這項服務會在背景中叫用對應的 Google Cloud API,根據執行計畫佈建基礎架構。
- 這會建立 Terraform 狀態檔案,這是將設定檔中的資源與實際基礎架構中的資源進行 JSON 格式對應的檔案。Terraform 會使用這個檔案瞭解基礎架構的最新狀態,並決定何時建立、更新及刪除資源。
- 接著,當您執行
terraform apply
時,Terraform 會使用狀態檔案中的對應項目,將現有基礎架構與程式碼進行比較,並視需要進行更新:- 如果設定檔中定義的資源物件不存在於狀態檔案中,Terraform 會建立該物件。
- 如果狀態檔案中存在資源物件,但其設定與設定檔不同,Terraform 會更新資源,使其符合設定檔。
- 如果狀態檔案中的資源物件與設定檔相符,Terraform 就不會變更該資源。
Google Cloud 供應者
您可以透過兩種供應商來佈建及管理 Google Cloud 基礎架構:
google
:使用這個供應工具來佈建及管理 Google Cloud API。google-beta
:使用這個供應工具來佈建及管理 Google CloudBeta 版 API。
如需使用這些供應工具的操作說明,請參閱 Google Cloud 供應工具設定參考資料。
google
和 google-beta
供應器是使用名為 Magic Modules 的工具開發而成。Magic Modules 可讓提供者針對單一程式碼集進行變更,並同時開發 google
和 google-beta
供應器。
您可以按照Magic Modules 貢獻指南中的指示,使用 Magic Modules 為 Google Cloud 供應器做出貢獻。
後續步驟
- 瞭解如何使用 Terraform 在 Compute Engine 上建立基本網路伺服器
- 瞭解如何將 Terraform 狀態儲存在 Cloud Storage 值區
- 查看各種 Terraform Google Cloud 範例
- 查看 Google Cloud的 Terraform 模組和藍圖