專案

一般

配置概況

Terraform

Infrastructure as Code(IaC)基礎設施即程式碼是一種基礎設施的佈建方式,取代了過往人工佈建的不穩定性,通常用於雲端平台基建的部署與維運,IaC透過程式設計的概念定義出雲端服務建構所需的物件、方法與參數,讓管理員以編寫程式碼的方式來定義基礎建設的模樣,而Terraform正是其中的佼佼者,其provider支援市面上絕大多數主流知名的雲端平台、自有的HCL語法簡單易懂,是近年最熱門且強大的IaC工具。

Installation

Terraform是一款客戶端工具,支援Linux、Windows與MAC等三大平台,本文僅以RockyLinux作爲安裝示範,其他系統的安裝方式可參閱 官方文件

Workflow

Terraform的工作流程如圖所示,用戶編寫了HCL語法的IaC腳本後,經歷了Plan和Apply兩個階段後,透過配置的 Provider(比如AWS、GCP、Azure、Alibaba等雲端平台)去佈建後面的運算、儲存或網路資源,以建構所需的基礎建設...(see more)

State

Terraform透過 terraform.tfstate 檔案、以JSON格式記載provider的基礎建設狀況,比如provider為aws的對象,我們已經成功建立過一次名為 example-ec2 的ec2 Instance,那麼在下一次要apply時,terraform就可以比對 terraform.tfstate 與現在的IaC腳本然後計算出有哪些地方需要CURD(增刪改查),以下是一個不含任何資源的 terraform.tfstate 範例,若未來有新增資源,將會添加資訊在resources鍵值裡。

{
  "version": 4,
  "terraform_version": "1.6.6",
  "serial": 3,
  "lineage": "965f6a83-4a51-1483-e3bg-d681da9260d4",
  "outputs": {},
  "resources": [],
  "check_results": null
}

Howto

  1. Terraform建立AWS EC2 Instance(含VPC、ACL與SecurityGroup創建)

回到頁首