Terraform基础设施即代码入门教程:从本地资源到可复现部署的完整实战
第1章:先把 Terraform 跑起来
大家好,这次我们不讲抽象概念,直接打开终端,做一个能看到结果的 Terraform基础设施即代码入门教程。Terraform 的核心流程只有四步:编写配置、初始化、预览变更、执行变更。
先确认环境。安装 Terraform CLI 后执行:
terraform version
我本机使用 Terraform 1.9.8,macOS 和 Linux 都可以直接通过包管理器安装,Windows 可使用 Chocolatey 或官方安装包。接下来创建项目目录:
mkdir tf-demo
cd tf-demo
touch main.tf
把下面内容写入 main.tf。这里使用官方维护的 local provider,不创建云资源,不会产生云账单,特别适合第一次练习 Terraform安装教程 和基本语法。
terraform {
required_providers {
local = {
source = "hashicorp/local"
version = "2.5.2"
}
}
}
provider "local" {}
resource "local_file" "demo" {
filename = "${path.module}/hello.txt"
content = "Managed by Terraform\n"
}
第2章:初始化、预览,再执行
OK,屏幕重点来了。先格式化并初始化插件:
terraform fmt
terraform init
看到 “Terraform has been successfully initialized” 后,再运行:
terraform validate
terraform plan
plan 只预览,不修改文件。正常情况下会显示 “Plan: 1 to add, 0 to change, 0 to destroy”。确认无误后执行:
terraform apply
终端出现交互提示时输入 yes。现在看目录,会多出 hello.txt、.terraform 目录和 terraform.tfstate。打开 hello.txt,内容应该是 “Managed by Terraform”。这就是 Terraform怎么用 的最小闭环:配置文件是期望状态,state 是 Terraform 对现实状态的记录。
Now watch this:手动删除 hello.txt,再执行:
terraform plan
terraform apply -auto-approve
Terraform 会发现资源缺失,并重新创建它。我在本机测试,整个初始化约 3 秒,apply 通常低于 1 秒;实际时间取决于网络和插件缓存。
第3章:状态文件、变更和验证
修改 main.tf 中的 content,例如增加一行,再运行 terraform plan。你会看到资源从原内容变为新内容。不要直接手改 state,也不要把包含敏感信息的 state 上传到公开仓库。
建议立即创建 .gitignore:
.terraform/
*.tfstate
*.tfstate.*
*.tfvars
*.tfvars.json
crash.log
多人协作或部署云资源时,应使用远程 state,并启用锁定机制;本地 state 只适合学习和单人实验。完成测试后执行:
terraform destroy
输入 yes 后,hello.txt 应该被删除。
如何验证修复有效:执行 terraform validate 必须返回 Success;执行 terraform plan 在没有改动时应显示 “No changes”;运行 terraform apply 后检查文件内容,再执行 terraform destroy 确认资源能被完整清理。想继续实战,可以在评论区告诉我你准备做 AWS、阿里云还是 Kubernetes 版本。