Terraform 基础设施即代码
terraform 用 HCL 描述云资源,通过 provider 调用各平台 API,并把状态保存在 backend 中。核心流程是 init、plan、apply,状态文件是团队协作的关键。
terraform init
terraform init -upgrade
terraform fmt -recursive
terraform validate
terraform plan -out=tfplan
terraform apply tfplan
terraform show
terraform output
terraform state list
terraform state show aws_instance.web
terraform import aws_instance.web i-0123456789
terraform plan -replace=aws_instance.web
terraform destroy
terraform workspace list
terraform providers lock -platform=linux_amd64
plan -out 后用同一个 plan 文件 apply,避免计划与执行不一致。plan 和 refresh 先看差异。import 只把现有资源纳入状态,不会自动生成完整配置;导入后要补齐代码。destroy 的删除顺序由依赖图决定;有保护策略或终结器时会失败。.tf 或变量默认值;用环境变量、OIDC 或密钥管理服务。opentofu — Terraform 的开源分支terragrunt — Terraform 的编排封装pulumi — 用编程语言描述基础设施合上页面,先回答,再展开对照。
terraform plan -out=tfplan 后用同一个 plan 文件 apply?terraform import 会自动生成完整的资源代码吗?import 只把现有资源纳入状态,导入后还要补齐配置代码。