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¶
回到頁首