Skip to Content

什麼是 Terraform 計劃?

Terraform 由 HashiCorp 開發,是一種廣泛使用的基礎架構即程式碼(IaC)工具,能讓使用者使用高階配置語言來定義和配置軟體基礎架構。隨著企業組織逐漸採用雲端基礎架構,Terraform 已成為管理及自動化基礎架構資源部署的必要條件。Terraform 的核心命令之一是 terraform 計畫,這是部署流程中的關鍵步驟,可確保基礎架構的變更安全、可預測且高效。

在這篇文章中,我們將深入探討此指令、它的功能,以及如何解讀 Terraform 配置的輸出。

什麼是 Terraform 計劃?

Terraform 計劃命令是 Terraform 工作流程中的重要部分,它可作為 Terraform 對您的基礎架構所做的更改的乾式運行或預覽。它將基礎架構的目前狀態與 Terraform 配置檔案中定義的所需狀態進行比較,並顯示 Terraform 將採取的特定行動來彌補差距。這包括資源的新增、刪除和修改,例如建立新的虛擬機器、擴充現有資料庫,或移除未使用的儲存磁碟區。

Terraform 計劃的優勢

能夠預覽您的配置代碼將對您的基礎架構造成什麼改變,在許多方面是有利的,包括:

  • 透明度:Terraform 計畫提供近期變更的詳細總覽,清楚說明您的基礎架構中將建立、修改或刪除的內容。這種透明度有助於將錯誤降至最低,並確保參與部署流程的每個人都在同一頁上。
  • 風險降低:透過事先預覽變更,使用者可以在潛在問題中斷服務之前先找出並加以解決。Terraform 計畫可以幫助發現資源衝突(例如建立名稱重複的 VM)、缺少相依性(例如,需要未設定的特定安全群組的資料庫),或因配置檔案中的錯別字而進行意外修改。
  • 協作:Terraform 計畫與 Git 等版本控制系統無縫整合,促進團隊合作。與團隊成員分享計畫成果,即可在規範承諾的脈絡下審查變更,並在變更實施前提高透明度和責任感。
  • 效率:Terraform 計畫可協助使用者有條理地規劃和執行基礎架構變更。分析計畫可讓您在套用變更之前,找出潛在的瓶頸或效率低下。
  • 安全性:Terraform 計畫作為安全網,可讓您在變更應用於生產基礎架構之前,先行審查並驗證變更。此防護功能有助於防止意外修改,並確保雲端環境的穩定性和可靠性。

如何執行 Terraform 計劃

若要執行 terraform 計劃,請先確定您的本機已安裝 Terraform。您可以從 HashiCorp 官方網站下載並安裝適當的版本。

在執行計劃指令之前,您需要在工作目錄中建立一個名為 main.tf 的基本 Terraform 組態檔案。以下是在雲端供應商中建立虛擬機器資源的簡易配置範例:

# Configure the cloud provider (replace with your provider details)
 provider "aws" {
   region = "us-east-1"
 }
 
 # Define a virtual machine resource
 resource "aws_instance" "my_vm" {
   ami           = "ami-0f78f7e824d9499e0"  # Replace with the desired AMI ID
   instance_type = "t2.micro"
 }

1. 初始化 Terraform 目錄

導覽至包含 main.tf 檔案的工作目錄,並在您的人機介面中執行以下指令:

$ terraform init

此指令會初始化 Terraform 目錄,下載任何設定中提到的必要外掛程式或模組,並準備使用 Terraform 的環境。

2. 執行 Terraform 計畫

初始化完成後,請執行以下命令以產生執行計畫:

$ terraform plan

此指令會分析您的 Terraform 配置,並將其與基礎架構的目前狀態(若有)進行比較。接著會顯示詳細的計畫,概述 Terraform 為達到設定中定義的所需狀態所採取的行動。計畫通常會顯示建立、修改或刪除的資源

3. 儲存計畫輸出

如果您想儲存計劃以供未來參考,或與團隊成員分享,您可以選擇使用計劃指令的 -out 標誌。例如,以下命令會將計畫儲存至名為 plan.tfplan 的檔案:

$ terraform plan -out=plan.tfplan

terraform plan 命令僅預覽變更。它不會對您的基礎架構進行任何修改。在審查並核准計劃後,您可以使用 $ terraform apply 指令來執行計劃變更。

了解並分析 Terraform 計畫輸出

Terraform 計畫輸出通常分為幾個部分,每個部分都提供對規劃行動的寶貴見解:

資源行動

本節列出 Terraform 打算針對您的基礎架構資源執行的具體行動。這些行動分為三種主要類型:

  • 建立(+):此符號表示 Terraform 將根據您的配置建立新的資源。
  • 閱讀(~):此符號表示 Terraform 將讀取現有資源的狀態,以確定是否需要進行任何變更。此符號在計劃輸出中較不頻繁,因為 Terraform 通常會在計劃階段決定所需的行動。
  • 刪除(-):此符號表示 Terraform 將刪除您配置中不再定義的現有資源。

資源詳情

本節提供各項資源的深度資訊,這些資源將受計劃影響。以下是您通常可以找到的詳細資訊:

  • 資源類型:這指明了 Terraform 管理的基礎架構資源類型(例如 aws_instance、azurerm_resource_group)。
  • 資源名稱:這會識別在您的 Terraform 配置中指派給資源的唯一名稱。

預定變更

本節詳細說明將套用至資源的特定變更。對於正在建立的資源(以 + 表示),它將列出將定義的屬性及其對應值。對於要修改的資源,將顯示對現有屬性的變更。

概要

計畫輸出通常會以摘要部分作結,提供計畫行動的高層級概述。本摘要一般會將資源總數細分為以下類別:

  • 要新增:將要建立的新資源數量

  • 要變更 :要修改的現有資源數量

  • 銷毀:將刪除的現有資源數量

當您使用我們之前建立的樣品配置運行 terraform 計劃時,您將獲得類似於以下的結果:

# $ terraform plan
 
 Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
   + create
 
 Terraform will perform the following actions:
 
   # aws_instance.my_vm will be created
   resource "aws_instance" "my_vm" {
     + ami           = "ami-0f78f7e824d9499e0"
     + instance_type = "t2.micro"
     + tags = {
       + Name = "sample-tag"
     }
   }

1. 資源行動:第一行表示 Terraform 將在此計劃期間執行建立行動 (+)。

2.  資源詳細資料:後續章節將深入探討單一資源 aws_instance.my_vm 的細節。這表示 Terraform 會在您的 AWS 環境中建立一個名為 my_vm 的新 AWS EC2 執行個體 AWS 詳細資料進一步指定了 AMI ID(ami-0f78f7e824d9499e0)、執行個體類型 (t2.micro ),以及 Terraform 將套用至新執行個體的標籤(名稱 = "樣本標籤 ")。

3.  摘要(隱含):雖然此範例並未明確顯示摘要,但摘要可能會顯示在更複雜的計畫輸出結束時,表示要建立的資源總數。

使用 Terraform 計畫的最佳做法

套用基礎架構變更前,terraform 計畫指令就是您的安全網。以下是最大化效益的一些基本做法:

仔細檢查資源變更

  • 專注於標示為建立(+)或刪除(-)的資源。
  • 驗證新資源的屬性值是否與您的意圖一致(例如 AMI ID、儲存大小)。
  • 再次檢查對現有資源的修改是否正確。

發現潛在問題

  • 尋找資源衝突(例如重複的名稱、缺少相依性)。
  • 確保所有必要的相依性(如安全組)都已定義。
  • 小心刪除可能中斷服務的意外資源。

利用輸出:

  • 驗證規劃的變更是否符合您的基礎架構目標。
  • 考慮與資源修改相關的潛在成本影響。您也可以分享計劃輸出,以供團隊審查和溝通。

結論

Terraform 計畫是 Terraform 工作流程中強大的工具。它提供了一種安全、透明的方法,在應用前預覽和驗證基礎架構變更。透過了解並有效使用 Terraform 計畫,您可以確保部署的效率、可預測性,並且沒有意外的後果。

Pure Storage 為您的 Terraform 部署提供了最佳的持久區塊式資料儲存解決方案。Portworx® 為您的所有容器和 Kubernetes Terraform 工作負載提供全面的資料平台。有了 Pure Cloud Block Store 的幫助,您可以在雲端運行任何資料庫或容器工作負載,就像地端基礎架構一樣。

10/2025
Virtual Machine Provisioning at Enterprise Scale | Everpure
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
白皮書
22 頁

查看重要資訊與活動

影片
觀看影片:企業級資料雲端的價值。

Charlie Giancarlo 討論管理為何管理資料才是未來趨勢,而非儲存設備。發掘整合式做法如何革新企業級 IT 作業。

立即觀看
資源
傳統儲存裝置無法驅動未來。

現代化工作負載需求必須達到 AI 級速度、安全性與規模。您的技術棧準備好了嗎?

進行評估
PURE360 示範
探索、認識、體驗 Pure Storage。

存取隨取隨用影片與示範,了解 Pure Storage 的強大功效。

觀賞示範影片
精神領袖
創新競賽

儲存創新最前線的產業領導者最新深度資訊與觀點。

了解更多資訊
您的瀏覽器已不受支援!

較舊版的瀏覽器通常存在安全風險。為讓您使用我們網站時得到最佳體驗,請更新為這些最新瀏覽器其中一個。

Personalize for Me
Steps Complete!
1
2
3
Thinking...