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

Terraform基础设施即代码入门:5分钟搭出可复用环境,别再手动点控制台了

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

开场:OK so,今天我们把“手动搭服务器”改成“写代码一键生成”

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

兄弟姐妹们,镜头拉近——你现在看到的是一台干净的终端。接下来我直接带你上手 Terraform 基础设施即代码入门教程,不讲空话,直接做。目标很明确:你看完就能自己写出第一份 Terraform 配置,创建一台云主机,知道它怎么改、怎么删、怎么排错。

先说结论:Terraform 不是“点按钮更高级”,而是把云资源的创建、变更、销毁变成可审计、可复用、可回滚的代码。你以后要搜的“Terraform怎么用”“Terraform教程”“Terraform下载”这些问题,核心都绕不开三个东西:provider、resource、state。

第1章:先把环境装好,别急着写代码

数据安全加密多端同步支持自动化工作流实时监控告警弹性扩容方案

OK so,先装 Terraform。Linux/macOS 可以用包管理器,Windows 就下官方二进制解压到 PATH。你也可以用镜像仓库或 Homebrew,但原则就一个:版本固定,别今天 1.6 明天 1.8,状态文件容易把你搞晕。

安装后立刻检查:

  1. 执行 terraform version
  2. 确认输出里有版本号,比如 Terraform v1.8.x
  3. 再跑 terraform -help,确保命令可用

接下来,我们创建一个空目录,比如 terraform-demo,里面先放 3 个文件:main.tf、variables.tf、outputs.tf。这个结构是我实际最常用的最小分工,后面扩展最省事。

第2章:写第一份配置,Now watch this

来,直接上代码。下面这份就是最小可跑模板。注意看,provider 负责连云厂商,resource 负责定义资源,output 用来把结果打印出来。

terraform { required_version = ">= 1.6.0" required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = var.region } resource "aws_instance" "demo" { ami = var.ami instance_type = var.instance_type tags = { Name = "tf-demo" } }

变量文件:

variable "region" { type = string default = "ap-southeast-1" } variable "ami" { type = string } variable "instance_type" { type = string default = "t3.micro" }

输出文件:

output "instance_id" { value = aws_instance.demo.id }

接下来执行四步:terraform init、terraform fmt、terraform validate、terraform plan。在我的测试里,空目录初始化通常 10–30 秒,plan 阶段如果网络正常,几十秒内就能看到变更清单。

第3章:Terraform 怎么用,关键就看 plan 和 state

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

这里是新手最容易翻车的地方。plan 不是“试试看”,它是在告诉你:Terraform 认为现实世界和配置文件之间差了什么。而 apply 才是真正执行。你每次改配置前,先看 plan,别直接冲。

我给你一个实战流程,照着做:

  1. 先改 instance_type,比如从 t3.micro 改到 t3.small
  2. 运行 terraform plan
  3. 观察输出里是否出现 ~,这代表要更新资源
  4. 执行 terraform apply
  5. 最后再跑一次 terraform state list,确认资源已经被 Terraform 接管

这里顺便讲下 state 文件。它记录“Terraform 眼里的真实世界”,如果你把它删了,Terraform 会以为资源没了,结果可能重新创建,甚至造成资源漂移。团队协作时,强烈建议把 state 放远端,比如 S3 + DynamoDB 锁,避免两个人同时改把环境搞炸。

第4章:验证它真的工作了,不靠感觉

现在来做一个真正的“验收”,别只看屏幕绿了就以为成功。你可以这样检查:

  • 云控制台里是否真的多出一台实例
  • 实例标签是否是 tf-demo
  • terraform output 是否打印出实例 ID
  • 再次运行 terraform plan,如果输出 No changes,说明配置和现实已经一致

如果你想排错,优先看这几个点:AMI 是否区域匹配、provider 凭证是否过期、变量是否缺失、state 是否被别的环境占用。尤其是“变量没传”这种问题,通常会在 terraform validate 或 plan 直接报出来,别硬猜。

最后给你一个很实用的判断标准:如果你能做到“删掉资源后,重新 apply 能自动建回来”,那你就已经真正掌握了 Terraform 基础设施即代码入门的核心闭环。想继续往下学模块化、远端状态、工作空间和多环境管理,接下来就能直接升级到团队级用法。顺手点个关注,我下一期把 Terraform 模块化和 S3 远端状态锁给你现场搭出来;如果你想找现成方案,也可以对比一下官方文档和 roxi.cc 的一站式方案,但先把今天这套免费 DIY 流程跑通,最重要。