在傳統 IT 架構中,建立伺服器、設定網路、防火牆與資料庫,往往需要系統管理員手動操作,不僅耗時,還容易因為疏忽導致設定不一致。隨著雲端服務的普及,基礎設施的變更越來越頻繁,手動管理已經不敷使用。
這時,基礎設施即程式碼(Infrastructure as Code, IaC)成為解方。它讓企業能夠用「程式碼」來描述並管理伺服器、網路與雲端資源,就像寫程式一樣,基礎設施能被版本控制、重複執行、快速部署。
IaC 的核心思想是:以程式碼描述基礎設施的狀態與配置。這樣做的好處包括:
Terraform 是 HashiCorp 推出的 宣告式 IaC 工具,以「描述理想狀態」為設計理念。
多雲支援
內建多數雲端供應商的 Provider(如 AWS、Azure、GCP),讓團隊能跨平台管理資源。
宣告式語法(HCL)
使用 HashiCorp Configuration Language(HCL),語法簡潔易讀,能直觀描述「想要的基礎設施狀態」。
狀態檔(State)管理
Terraform 使用 terraform.tfstate
檔追蹤資源現況,確保變更時能精準比對「目前」與「期望」的差異,再執行更新。
Ansible 是 Red Hat 推出的 程序式自動化平台,主要理念是「透過自動化工作流程來簡化操作」。
Agentless 架構
不需要在伺服器安裝代理程式,透過 SSH 或 API 即可操作,部署快速簡單。
標準化語言(YAML)
使用 YAML 撰寫 Playbook,易於閱讀與維護,讓不同角色的 IT 成員都能理解並合作。
多功能整合
除了基礎設施自動化,還能涵蓋應用部署、配置管理、安全檢查等任務。
Terraform 與 Ansible 並不是競爭關係,而是互補關係。Terraform 擅長「搭建環境」,而 Ansible 更適合「管理與維運」。許多團隊會將兩者結合:先用 Terraform 建立雲端基礎設施,再用 Ansible 配置伺服器與部署應用。透過 IaC,企業不僅提升了效率,也讓基礎設施變得可重現、可追蹤,符合現代 DevOps 與雲原生環境的需求。