Terraform - 廠商
云廠商資源
Terraform通過Provider管理基礎設施,使用Provider與云供應商API進行交互。
每個Provider都包含相關的資源和數據源。
支持列表
官方文檔:
- Provider列表:https://registry.terraform.io/browse/providers
- AWS:https://registry.terraform.io/providers/hashicorp/aws/latest/docs
- AZure: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
- ALiYun: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs
- K8s: https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs

通用步驟
一般情況下,應用云廠商的步驟如下:
- 在云廠商頁面控制臺配置訪問控制:人員訪問權限、API訪問權限、秘鑰等
- Terraform聲明云廠商對應的provider
- Terraform定義云廠商資源:專有網絡(VPC,virtual private cloud)、安全組、
- Terraform申請云廠商資源
通過Terraform來定義和申請
1-創建配置文件
對所有資源的代碼描述都需要定義配置文件中,用于Terraform加載和解析,建議分類創建結構化的配置文件,例如
- version.tf :required_providers{} 定義對應云廠商的providers,source關鍵字定義provider的源地址,version關鍵字指定provider的版本號等
- main.tf:定義云廠商的access_key/secret_key/region等
- variables.tf:通過variable關鍵字聲明變量的名稱和type,在系統環境變量中export敏感變量的值(以TF_VAR_的名稱開頭)
- terraform.tfvars:對聲明的變量進行配置和賦值
- output.tf:定義輸出內容
分類別創建云廠商Resource的tf文件
- 每個資源塊描述一個或多個基礎對象、計算實例或更高級別的組件,例如網絡、DNS 記錄
- 資源名稱必須以字母或下劃線開頭,并且只能包含字母、數字、下劃線和破折號
- 資源參數引用:
. .
例如,在tf文件中定義私有網絡(名稱、網段、區域、ID等)、安全策略(訪問類型、規則、出入流量、開放端口等)、等
2-初始化
- 通過在tf文件所在目錄下執行命令
terraform init - 初始化過程: 初始化配置后端state、尋找下載安裝云廠商的對應版本的Provider
- 初始化時自動創建
.terraform目錄,用來管理緩存的提供程序插件和模塊等配置 - state文件用于存儲Terraform的數據
- 當provider版本變化時,需要重新初始化
3-格式化與驗證
terraform fmt命令格式化代碼,保持代碼整潔terraform validate命令對定義的代碼進行語法校檢
4-計劃與預覽
- 命令
terraform plan打印當前狀態和期望狀態之間的差異(不會執行變更) - 評估 Terraform 配置,并打印聲明的所有資源的期望狀態
- 將期望狀態與當前工作目錄的基礎設施對象進行比較
5-申請資源
- 命令
terraform apply運行plan計劃中的操作 - 默認會出現是否批準該計劃的提示,使用
-auto-approve選項可以放棄該提示 - terraform會自動調整plan中的操作來執行
行動是絕望的解藥!
歡迎轉載和引用,但請在明顯處保留原文鏈接和原作者信息!
本博客內容多為個人工作與學習的記錄,少數內容來自于網絡并略有修改,已盡力標明原文鏈接和轉載說明。如有冒犯,即刻刪除!
以所舍,求所得,有所獲,方所成。

浙公網安備 33010602011771號