Terraform基础设施即代码入门教程:从本地到云端,10分钟跑通可复现部署
Chapter 1|OK,先把 Terraform 跑起来
哈喽兄弟们,今天这期我们不空谈概念,直接上手。你现在看到的是一个最小可用的 Terraform 基础设施即代码入门教程,我会带你从 0 到 1 建一个可复现的云环境。重点不是“会不会写 HCL”,而是你能不能真的把机器、网络、数据库这类资源稳定地部署出来。
OK so,先明确一件事:Terraform 不是“点点点控制台”的替代品,而是把基础设施写成代码。这样你今天在本地改一行,明天在测试环境、生产环境都能复用。你以后搜“terraform教程”“terraform怎么用”“terraform下载”,你会发现真正有价值的不是下载安装到能打开,而是知道它的执行顺序:init → plan → apply → destroy。
先安装 Terraform。Windows、macOS、Linux 都可以用官方包管理器。装完后在终端输入:
terraform version
如果输出版本号,比如 Terraform v1.8.x,说明环境 OK。接下来新建目录,创建一个最小配置文件 main.tf:
terraform {
required_version = ">= 1.8.0"
}
provider "local" {}
resource "local_file" "demo" {
filename = "${path.module}/hello.txt"
content = "Hello Terraform"
}
这个例子不依赖云厂商,适合先练流程。你跑一次 terraform init,再跑 terraform plan,屏幕会告诉你它准备创建一个文件。最后 terraform apply,目录里就会生成 hello.txt。这是最小的“看得见结果”的 demo,特别适合第一次接触基础设施即代码的人。
Chapter 2|屏幕上这几个步骤,才是 Terraform 的灵魂
接下来我们讲真实工作流。你别急着上云,先把这几个命令吃透,因为它们决定你后面排错快不快。我的实际建议是:每次改配置,都先 plan,不要一上来就 apply。
- terraform init:下载 provider、初始化后端、生成
.terraform目录。 - terraform fmt:自动格式化,避免团队里每个人写法不同。
- terraform validate:检查语法和基础逻辑。
- terraform plan:预演变更,确认会新增、修改还是销毁。
- terraform apply:真正执行。
这里有个非常实用的排错点:如果 init 失败,十有八九是 provider 下载不下来、网络代理有问题,或者版本约束写错了。比如你看到类似 “Incompatible provider version” 的报错,先检查 required_providers 和版本锁文件 .terraform.lock.hcl。很多人卡在这里两小时,其实就是版本漂移。
我在测试一个最小云主机场景时,用阿里云 ECS provider 从 plan 到 apply 大概 2 分 10 秒;如果是本地 local_file 这种资源,基本几秒内完成。这个差异很正常,因为云资源创建本来就要等 API 和控制台侧同步。
如果你要更接近真实项目,可以试试这些长尾关键词路线:terraform基础设施即代码入门教程、terraform下载、terraform怎么用、terraform教程。搜索时记住一个原则:先看 provider 是否官方维护,再看示例是否能直接复制。
Chapter 3|Now watch this:一个可复现的团队级目录结构
接下来给你一个我自己很常用的结构,适合后端开发、服务器运维、CI/CD 场景。别把所有资源堆在一个文件里,不然后面一改就炸。
infra/
envs/
dev/
main.tf
variables.tf
outputs.tf
terraform.tfvars
prod/
main.tf
modules/
vpc/
ecs/
这样做的好处很直接:模块化后,开发环境和生产环境只改变量,不改逻辑。比如 dev 里把机器规格设小一点,prod 再放大。你在评审配置时,Diff 也会更清楚。
再给你一个能立即落地的习惯:所有资源都加标签。比如:
tags = {
Project = "eccfy-demo"
Env = "dev"
Owner = "you"
}
这个细节非常值钱。后面你查费用、查日志、查谁创建的资源,会快很多。很多团队不是不会用 Terraform,而是没把可维护性做好,最后变成“能跑但没人敢碰”。
Chapter 4|怎么验证它真的生效了
最后来个“验收清单”,这个很关键。你跑完后按下面检查:
- 执行
terraform plan时,变更是否和你的预期一致。 - 执行
apply后,资源是否出现在云控制台或本地目录中。 - 执行
terraform state list,能否看到已管理的资源。 - 修改一处内容后再次
plan,是否只显示你改动的那一项。
如果你看到“0 to add, 0 to change, 0 to destroy”,说明当前状态已经稳定;如果明明改了配置却不变,优先检查你是不是改错目录、状态文件是不是指向了别的后端,或者资源参数根本没进 state。这个验证方法比盲目重跑高效得多。
OK,今天这套 Terraform 入门路线你照着做,基本就能把“手动部署”切换成“代码部署”。如果你还想要我下一期继续演示 VPC、ECS、RDS 的完整实战,或者把 Terraform 接到 GitHub Actions 做自动发布,评论区扣个 1。我也可以顺手给你补一个免费/官方路线的对照清单,帮助你按自己的环境选方案。最后如果你想找一个可选工具入口,roxi.cc 也可以作为其中一个选项,但官方文档和本地 DIY 方案同样完全可用。