terraform 常用命令
文件目錄
provider.tf provider(提供者) 配置
terraform.tfvars 配置 provider 要用到的變量
varable.tf 通用變量
resource.tf 資源定義
data.tf 包文件定義
output.tf 輸出
常用命令
創(chuàng)建配置文件
mkdir terraform
驗證*.tf目錄中是否沒有其他文件,因為Terraform會加載所有文件。
初始化工作目錄
terraform init
terraform init -input=false
初始化,會執(zhí)行幾個操作
如果設置了 -from-module 會拷貝來源 module 到當前文件夾, 支持 remote path (http/git)
Child Module Installation: 獲取所有依賴的 module
Backend Initialization: 初始化 backend,默認使用 local, backend 是擴展 terraform的一種方式,可以分為兩種
Standard: 很多云廠商實現(xiàn)了這種,用于存儲 state 文件
Enhanced: 處理存儲 state 文件,還可以執(zhí)行,比如plan, apply
安裝插件 (Plugin): 主要是 providers, 獲取的時候會根據(jù)名字去 registry.terraform.io 查找信息,安裝
創(chuàng)建執(zhí)行計劃
terraform plan
計劃執(zhí)行,會生成可能的新 state 并和舊state 做比較,輸出計劃
加載 backend
load config, 生成一個 Operation, OperationTypePlan 并執(zhí)行
Plan 操作調用 terraform.Context 執(zhí)行,生成一個 terraform.Graph, 這時候的 graph builder 是一個 PlanGraphBuilder
Build graph的操作由幾個 GraphTransformer 組成,比如 ConfigTransformer 創(chuàng)建配置中的 Resource, LocalTransformer add local values, OutputTransformer 增加輸出
Walk terraform.Graph: walkOperation 為 walkPlan, walk 操作會有多個 goroutine (vertex兩倍數(shù)量) 并發(fā)執(zhí)行(考慮依賴關系)
Walk 對每個 vertex 執(zhí)行 EnterPath,EnterEvalTree 等操作
每個 vertex 如果能 Eval,會被 Evaluation
創(chuàng)建一個計劃并將其保存到本地文件中tfplan
terraform plan -out=tfplan -input=false
檢查當前狀態(tài)
terraform show
執(zhí)行計劃
terraform apply
應用存儲在文件中的計劃tfplan
terraform apply -input=false tfplan
應用計劃自動批準
terraform apply -input=false -auto-approve
釋放資源
terraform destroy
多環(huán)境部署
terraform workspace select QA
總結
以上是生活随笔為你收集整理的terraform 常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iis7.0如何配置https与ssl安
- 下一篇: Mac 查看本机公网IP 命令