Hi 各位好,終於來到第 23 天!
接下來四天,我們將進入 Terraform 與基礎建設自動化 的主題。
今天先簡單介紹 Terraform 的基本概念與使用方式。
就像 Amazon、Azure、Google 把機房的所有設備搬到網頁上讓使用者操作,
Terraform 則是把「建置基礎設施」這件事轉換成一份 可讀的宣告式設定檔。
透過 Terraform,我們可以使用文字檔描述整個雲端環境的結構,
包括網路、虛擬機(VM)、儲存空間、權限設定等。
這樣不僅方便版本控制,也能讓基礎建設變更具備一致性與可重現性。
官方網站
包含安裝說明與基本使用教學:
👉 https://developer.hashicorp.com/terraform
Terraform Registry
提供所有可用的「供應商(Provider)」清單,例如:
AWS、GCP、Azure、Kubernetes、GitLab、Datadog 等。
👉 https://registry.terraform.io/
官方教學課程
若想深入學習 HCL(HashiCorp Configuration Language)的撰寫方式,可參考:
👉 Write Terraform Configuration
官方提供從語法入門到模組化管理的完整教程集。
Terraform 的核心概念是「**透過呼叫 供應商API 建立 雲端服務 **」。
運作方式如下:
.tf
)內容,呼叫 供應商 所對應的雲端 API。以 GCP 為例:
google
Provider 頁面。google_compute_instance
、google_storage_bucket
)的設定方式與參數說明。Terraform 設定檔(副檔名 .tf
)由多個 區塊(block) 組成,每個區塊代表一個資源、變數或提供者設定。
範例:
resource "aws_vpc" "main" {
cidr_block = var.base_cidr_block
}
<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
<IDENTIFIER> = <EXPRESSION> # Argument
}
說明:
resource
、variable
、provider
。補充:
variable
進行參數化設定,提高模組化與重用性。以下範例示範如何建立一個屬於 IT 部門的 VPC:
resource "aws_vpc" "it" {
cidr_block = "10.1.0.0/16"
}
這段程式碼會建立一個 CIDR 為 10.1.0.0/16
的 AWS VPC,名稱為 it
。
為了讓不同部門或環境能重複使用相同設定,可使用變數:
variable "base_cidr_block" {
description = "VPC 使用的 /16 CIDR 範圍,例如 10.1.0.0/16"
default = "10.1.0.0/16"
}
再於資源中引用:
resource "aws_vpc" "it" {
cidr_block = var.base_cidr_block
}
.tfvars
管理不同環境設定# dev.tfvars
base_cidr_block = "10.2.0.0/16"
# prod.tfvars
base_cidr_block = "10.3.0.0/16"
執行時指定檔案:
terraform apply -var-file="dev.tfvars"
這樣即可在不同環境重用相同模組,提升維護性與一致性。
當我們完成設定檔的撰寫後,下一步就是讓 Terraform 實際執行這些設定,在雲端建立或更新資源。
整個操作流程相當簡單,只需三個步驟:
terraform init # 初始化專案並下載 Provider 外掛
terraform plan # 預覽變更內容
terraform apply # 套用變更至實際環境
指令說明:
init
:初始化 Terraform 專案,下載相依的 Provider 與模組。plan
:預覽執行結果,顯示即將建立、修改或刪除的資源。apply
:確認後執行變更,實際建立或更新雲端資源。這三個步驟構成 Terraform 的核心循環:
設定 → 規劃 → 執行,是基礎建設自動化的基石。
今天我們介紹了 Terraform 的基礎觀念與使用方式,內容包含:
Terraform 是什麼
了解 Terraform 如何將基礎建設以「宣告式設定檔」的形式進行管理,並實現基礎建設即程式(IaC)。
官方文件與資源
認識學習入口與 Terraform Registry,了解如何查詢各雲端供應商(Provider)的資源文件與範例。
運作原理
Terraform 透過 Provider 呼叫雲端 API,統一不同平台的基礎建設管理方式。
撰寫風格與規範
熟悉 .tf
檔案結構、Block 語法組成與變數(variable)使用方式,建立可重用的設定檔。
基本部署流程
認識 terraform init → plan → apply
的操作循環,從設定、預覽到實際執行的完整過程。
Terraform 的魅力在於,它讓雲端基礎建設的管理更像程式開發一樣可追蹤、可重現。
透過今天的學習,我們已經能讀懂最基本的 .tf
設定檔,並理解 Terraform 的角色與運作方式。
明天,我們將更深入探索 HCL(HashiCorp Configuration Language) 的語法特性,
包括 .tf
檔案命名與載入順序、locals
的運用,以及如何設計更具可讀性與可擴充性的 Terraform 配置。
希望今天的分享,能讓大家對 Terraform 有更清晰的認識,
準備好邁向下一步的自動化實作!
謝謝大家的閱讀,我們明天見!