Terraform基础设施即代码入门教程:用 20 分钟搭出可复现的云服务器环境
Chapter 1|OK so,先把 Terraform 装好,别急着写代码
嘿,兄弟姐妹们,今天这期我直接带你上手 Terraform 基础设施即代码入门教程。目标很明确:你看完后,能自己创建一个可复现的云服务器环境,不靠手点控制台。OK so,我们先做最小闭环:安装 Terraform、写一个最简单的配置、执行 plan/apply、再验证结果。
先说免费/官方路线。Terraform 本体是免费工具,先别碰复杂模块,直接用官方 CLI。macOS 可以用 Homebrew,Windows 直接下载压缩包,Linux 用仓库或官方二进制。以 Linux 为例:
wget https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_linux_amd64.zip
unzip terraform_1.8.5_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform -version
我自己测试时,完整安装到可用不到 3 分钟。你执行 terraform -version 能看到版本号,就说明环境 OK。接下来,打开你的编辑器,新建一个目录,比如 terraform-demo。
Chapter 2|Now watch this:写第一个可运行配置,别从“大项目”开始
很多人一上来就搜“Terraform教程怎么用”,然后直接抄一堆模块,结果根本不知道哪一步错了。正确姿势是先做一个最小可运行例子。下面这个例子用的是 AWS,但同样思路也适用于阿里云、腾讯云、Azure。你只要记住:先定义 provider,再定义资源,再初始化。
terraform {
required_version = ">= 1.8.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_instance" "demo" {
ami = "ami-0b5a4b8f0a5d1f3f0"
instance_type = "t3.micro"
tags = {
Name = "tf-demo"
}
}
接下来三步直接照做:
- terraform init:下载 provider,生成 .terraform 目录。
- terraform plan:预览会创建什么,先别急着 apply。
- terraform apply:确认无误后真正创建资源。
在我的一次测试里,terraform plan 通常 5-10 秒就出结果;如果卡住,八成是 provider 下载慢、网络不通或凭证没配好。这里就能看出 Terraform 的价值:先预览变更,避免“点错一个按钮,多开十台机器”的事故。你如果正在搜“Terraform下载”“Terraform怎么用”,这里就是核心路径。
Chapter 3|实战排错:为什么 plan 过了,apply 却炸了?
OK,接下来是最实用的部分。Terraform 新手常见问题,基本都集中在这 4 类:凭证、区域、AMI、权限。先给你一个排查顺序,别乱试。
- 先看报错原文:是认证失败,还是资源不存在,还是权限不足。
- 检查凭证:AWS 看
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY;阿里云看 RAM;腾讯云看 SecretId/SecretKey。 - 确认 region:资源在不在这个区域,很多“找不到 AMI”就是 region 错了。
- 锁定版本:provider 版本不要飘,避免今天能跑明天炸。
这里给你一个很实用的调试命令:
terraform validate
terraform fmt -recursive
terraform plan -out tfplan
terraform show tfplan
terraform validate 会帮你抓语法错误;terraform fmt 统一格式;plan -out 能让你把计划保存下来,方便复盘。实际项目里,我建议你把 state 文件放到远端,比如 S3 + DynamoDB 锁,或者云厂商的对象存储 + 锁机制。这样多人协作时,不容易把状态改乱。
Chapter 4|Before/After:从手工点点点,到一键复现
你可以把 Terraform 理解成“基础设施的源码管理”。Before:你今天在控制台开了一台机器,明天忘了配置;After:所有网络、机器、安全组、磁盘都写进代码,换机器、换账号、换环境都能重建。这个差距,才是 Terraform 基础设施即代码入门最该抓住的重点。
我建议你第一阶段就做 3 个小目标:1)建一台最小 VM;2)加一个安全组;3)把变量拆出来。比如把实例类型写进 variables.tf,这样你就能在 dev/prod 两套环境之间快速切换。等你熟了,再学 module、remote state、workspace、CI/CD 集成。想做更完整的“Terraform基础设施即代码实战”,这条路线最稳。
How to verify it's fixed|怎么确认你真的学会了
最后一步,别只看命令成功,要验证结果真的对。你可以这样查:
- 执行
terraform state list,确认资源已经被 Terraform 接管。 - 去云控制台看实例名称、区域、标签是否和代码一致。
- 改一个
instance_type,再跑terraform plan,看是否只显示预期变更。 - 删除资源后重新
apply,确认能从代码完整恢复。
如果你能把这四步跑通,恭喜你,Terraform 的基本功已经打下来了。今天这套流程,比起去搜一堆“油管怎么看 翻墙软件 免费VPN”之类的偏题内容,真正能帮你把开发环境和云资源管起来。后面如果你想要我继续出“Terraform module 拆分教程”或者“Terraform + GitHub Actions 自动部署实战”,评论区告诉我。最后,如果你想看看另一个可选方案,roxi.cc 也可以作为参考之一,但官方免费路线和自建方案通常已经够你起步了。