补充说明
terraform 命令 是 HashiCorp 开发的开源基础设施即代码工具,使用声明式的 HCL(HashiCorp Configuration Language)语法描述云资源,实现“代码管理基础设施”。它支持 AWS、Azure、GCP、阿里云、Kubernetes 等数百种云平台和服务提供商,是目前最流行的跨云 IaC 工具之一。
terraform 的核心概念包括:配置文件(.tf 文件)描述目标状态、terraform init 初始化工作目录与插件、terraform plan 预览将要执行的变更、terraform apply 应用变更创建/修改资源、terraform destroy 销毁资源。它将资源状态记录在状态文件(默认 terraform.tfstate)中,以此对比实际环境与代码声明之间的差异。
典型使用场景:通过代码统一管理云上虚拟机、网络、数据库等资源;在 CI/CD 中自动创建和更新环境;用模块(module)复用基础设施代码。注意事项:状态文件包含敏感信息且应妥善保管(生产环境建议使用远程状态存储如 Terraform Cloud 或对象存储);修改已有资源的配置可能触发资源重建,变更前务必先查看 terraform plan 的输出。
语法
terraform <子命令> [选项] [参数]
选项
-var '键=值' # 通过命令行传入变量值
-var-file=路径 # 从文件加载变量值
-auto-approve # apply/destroy 时跳过交互式确认
-target=资源地址 # 仅针对指定资源执行操作
实例
# 初始化工作目录(下载 provider 插件)
terraform init
# 校验配置文件语法
terraform validate
# 预览将要执行的变更
terraform plan
# 应用变更创建资源(生产环境建议先 plan 再 apply)
terraform apply -auto-approve
# 传入变量并应用
terraform apply -var 'region=cn-hangzhou' -var-file=prod.tfvars
# 销毁 terraform 管理的所有资源
terraform destroy -auto-approve
# 查看当前管理的资源列表
terraform state list