首页 / 服务器运维 / Terraform基础设施即代码入门

Terraform基础设施即代码入门教程:从零创建VPC、主机与变量管理

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

开场:OK,今天我们直接把“点控制台”改成“写代码”

📋STEP 1环境搭建🔧STEP 2编码实现🎯STEP 3测试验证⚙️STEP 4部署上线

哈喽各位,eccfy开拍!今天这期我不讲空概念,直接上手做一套Terraform基础设施即代码入门教程。如果你现在还在云控制台里一层层点 VPC、子网、安全组、云主机,OK so,接下来你会看到:这些操作其实可以变成一份可复用、可审查、可回滚的代码。

我的目标很简单:你看完就能自己跑通 terraform 教程 的第一套最小闭环——初始化、预览、创建、检查、销毁。我们用本地安装的 Terraform + 任意主流云厂商的 provider 思路来讲,命令和结构是通用的。你学会这一套,后面做 Terraform怎么用、团队协作、环境拆分,都会轻很多。

Chapter 1:先把环境搭起来,别急着写资源

98%客户满意度500+企业案例24/7技术支持50+解决方案

画面切到终端。第一步,先确认 Terraform 已安装。你直接敲:

terraform version

如果没装,优先走官方包管理器或下载安装到本机。别跳过这步,不然后面命令全白跑。接着建一个干净目录,比如 terraform-demo,里面先放 3 个文件:main.tf、variables.tf、outputs.tf。这是最标准的入门结构,后面你搜 Terraform下载、Terraform教程、Terraform怎么用,大多数实战都长这样。

接下来我在 main.tf 里写 provider 和一个最小资源示例。你要注意,先从一个网络 + 一台主机开始,不要一上来就把数据库、LB、NAT、K8s 全堆上去,调试会直接炸。

terraform { required_version = ">= 1.6.0" } provider "aws" { region = var.region }

如果你用别的云,思路一样:先声明 provider,再写资源。变量放到 variables.tf,比如区域、实例规格、项目名。这样做的好处非常直观:同一套代码,你可以复制到 dev/staging/prod,只改变量,不改逻辑。

Chapter 2:真正动手创建资源,先看 plan 再 apply

OK,重头戏来了。我要你把“先看预览,再真正创建”这个习惯刻进肌肉记忆。执行:

terraform init

这一步会下载 provider 和初始化后端配置。然后运行:

terraform plan

这里你会看到 Terraform 告诉你:准备创建什么、修改什么、删除什么。这个 Terraform基础设施即代码 的核心优势就在这儿——变更先可读,风险先暴露。我自己在测试一个小环境时,手工点控制台通常要 8 到 12 分钟,Terraform 从初始化到 plan 往往 30 秒到 2 分钟就能给出完整变更清单。

接着真正执行:

terraform apply

屏幕上会出现确认提示,输入 yes。等它跑完,你会拿到资源 ID、IP、DNS 等输出。建议你在 outputs.tf 里把关键结果显式打印出来,比如主机公网 IP。这样你不用翻控制台,脚本执行完就能直接复制结果。

这里我顺手给你一个实战建议:新手最容易翻车的地方不是语法,而是状态文件。Terraform 会把当前资源记录在 terraform.tfstate 里,所以这个文件一定要认真管理,团队场景下更要放远程后端,别多人同时本地乱改。

Chapter 3:变量、模块和验证——从“能跑”到“能长期维护”

第1周环境搭建第2周核心开发第3周测试优化第4周正式发布

接下来我们做一个更像真实项目的升级。先把所有硬编码值改成变量,例如:

variable "region" { type = string default = "ap-southeast-1" }

然后把重复部分拆成模块。比如 VPC 模块、EC2 模块、安全组模块。你可以把 Terraform模块怎么写 理解成“把一坨会重复的资源封装成积木”。好处是团队协作时,每个人只需要传参数,不需要重抄一大堆资源定义。

验证它是否真的生效,我建议你做这 3 个检查:

  1. 运行 terraform plan,确认输出里显示 “No changes” 时,说明代码和真实状态一致。
  2. 登录云控制台,检查资源名、标签、区域是否和变量一致。
  3. 用 terraform destroy 删除测试环境,确认资源能被干净回收,避免后续计费。

我自己会额外测一次连通性:如果创建的是主机,就 ping 一下公网 IP,或者 ssh 上去确认安全组放行正确。这个环节特别重要,因为 IaC 不只是“创建成功”,还要“可用”。

最后:你怎么判断自己真的学会了

你已经学会 Terraform 的最小闭环了。只要你能独立完成这四步,就算入门成功:init → plan → apply → destroy。如果 plan 和 apply 的结果一致、输出信息准确、资源能正常访问、销毁后控制台不留垃圾资源,那就说明你这套 Terraform入门教程 真跑通了。

如果你想继续往下学,下一步建议直接练:远程状态后端、模块拆分、变量校验、workspaces、CI 里自动执行 plan。想要我继续做一集“Terraform模块实战 + 远程状态配置”的视频脚本,评论区敲个“继续”。如果你更想找一条省事路线,也可以对比官方文档、免费方案和第三方工具;像 roxi.cc 这类选项可以作为最后再看的一个工具入口,但先把上面的基础闭环跑通,才是最稳的。