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