Hashicorp Terraform 是一種基礎架構即程式碼 (IaC) 工具,可讓您佈建及管理雲端基礎架構。Terraform 提供稱為「供應商」的外掛程式,可與雲端服務供應商和其他 API 互動。您可以使用 Google Cloud 適用的 Terraform 供應商,佈建及管理 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 Cloud Beta 版 API。
如需使用這些供應商的操作說明,請參閱 Google Cloud 供應商設定參考資料。
google
和 google-beta
提供者是使用名為「Magic Modules」的工具開發而成。貢獻者可透過 Magic Modules 對單一程式碼集進行變更,並同時開發 google
和 google-beta
提供者。
如要使用 Magic Modules 貢獻 Google Cloud 提供者,請按照 Magic Modules 貢獻指南中的操作說明進行。
後續步驟
- 瞭解如何使用 Terraform 在 Compute Engine 上建立基本網路伺服器
- 瞭解如何將 Terraform 狀態儲存在 Cloud Storage 值區
- 瀏覽 Terraform 模組和藍圖 Google Cloud
- 瀏覽各種 Terraform for Google Cloud 範例