Terraform

Terraform 是什麼?

Terraform 是 HashiCorp 推出的基礎架構即程式碼(infrastructure as code)工具。您在設定檔中描述伺服器、網路與雲端服務,Terraform 就會建立或變更實際的基礎架構來符合描述。

與工程師談談 知識庫
資料中心機房內,架高地板上的伺服器機櫃

它是什麼

沒有這類工具時,基礎架構是在網頁主控台上逐項點選建立的,事後沒有人能確切說出設定了什麼。有了 Terraform,工程師會撰寫檔案,說明應該存在什麼:兩台特定規格的虛擬機器、一個私有網路、一條防火牆規則、一個儲存貯體。

Terraform 透過提供者(provider)與各個平台溝通,提供者是熟悉該平台 API 的外掛程式。有適用於 AWS、Microsoft Azure、Google Cloud、DNS 服務與其他許多平台的提供者,也有社群維護的 Proxmox VE 提供者。一份設定可以涵蓋其中好幾個。

計畫、套用與狀態

  • 計畫(Plan):Terraform 將檔案與現況比對,列出它會建立、變更或刪除的項目。此時尚未動到任何東西。
  • 套用(Apply):在有人讀過計畫後,Terraform 只會做出這些變更。
  • 狀態(State):Terraform 會保留一份狀態檔,記錄哪些實際資源對應設定中的哪一部分。它可能包含密碼與其他敏感值,因此要存放在受保護的共用位置,而不是某一台筆記型電腦上。

企業能從中獲得什麼

  • 基礎架構的紀錄:這些檔案存放在 Git 中,顯示現有的內容以及每項變更的原因。
  • 變更當天不會有意外:在任何東西被刪除之前,計畫就已確切顯示將會發生什麼。
  • 可重複的環境:測試環境或第二個據點,可以用與正式環境相同的檔案建置。

Terraform 與 Ansible

Terraform 建立基礎架構:機器、網路與雲端服務。Ansible 則在這些機器存在之後,設定其上執行的內容。許多團隊兩者並用。

授權與 OpenTofu

2023 年,HashiCorp 將 Terraform 從開源授權改為 Business Source License,限制在與 HashiCorp 競爭的產品中使用。為此,OpenTofu 以開源分支的形式啟動,現在是 Linux Foundation 的專案。它讀取相同的設定語言。IBM 在 2025 年完成了對 HashiCorp 的收購。

KawaConnect 如何處理基礎架構即程式碼

我們將基礎架構即程式碼放在版本控制中,以 GitOps 營運 Kubernetes,並建置 Proxmox VE 叢集與 Microsoft Azure 架構。以檔案描述這些基礎架構,讓建置可以重複進行,每項變更也都能追溯。

相關服務

雲端基礎架構

Azure、混合式架構、遷移與復原規劃。

Proxmox 顧問服務

叢集、高可用性,以及從 VMware 遷移。

Kubernetes 顧問服務

透過 Git 與 GitOps 變更的叢集。

瞭解更多

基礎架構是靠點選建出來的嗎?

請告訴我們您的伺服器與雲端服務在哪裡執行。我們會說明以檔案描述它們需要做什麼,以及對您會有什麼改變。

開始洽談