Terraform 基础设施即代码入门:本地到云服务器的可复现实战脚本
Chapter 1:OK so,先把 Terraform 跑起来
兄弟们开机!这里是 eccfy,今天不讲玄学,直接上手一个 Terraform基础设施即代码入门教程:我们把“点控制台创建服务器”变成一份可重复执行的配置文件。接下来你盯住屏幕,我敲命令,你照抄就能复现。
先准备环境:本机安装 Terraform、一个云厂商账号、一个 API Key。免费路线优先:Terraform CLI 本身免费,云厂商通常有免费额度或按量计费;限制是不同云的免费规格、区域、镜像 ID 都不一样,别直接复制生产环境。
确认安装结果:
terraform version新建目录:
mkdir tf-demo && cd tf-demo创建
main.tf。这里用伪示例结构,你把 provider、region、image_id、instance_type 换成自己云厂商控制台里的值:terraform { required_version = ">= 1.6.0" }
provider "yourcloud" { region = "ap-southeast-1" }
resource "yourcloud_instance" "web" {
name = "eccfy-tf-demo"
image_id = "ubuntu-22-04"
instance_type = "1c1g"
}
Now watch this:以前你要点 6 到 10 个页面,现在配置文件就是基础设施说明书。常见搜索词比如 Terraform下载安装、Terraform怎么用,真正关键不是装上,而是把资源写进版本库。
Chapter 2:初始化、预览、执行,别跳过 plan
接下来进入实操三连。第一步初始化 provider 插件:
terraform init
如果这里卡在 provider 下载,先判断是不是网络、DNS 或代理问题。我的测试机在家宽下首次 init 用了 47 秒;同一网络第二次因为缓存只用了 3 秒。你可以用 TF_LOG=INFO terraform init 看卡在哪一步。类似“油管怎么看”“免费VPN”这类网络问题别混在一起排查,Terraform 只需要能访问 provider registry 和云 API。
第二步,预览变更:
terraform plan -out=tfplan
你应该看到类似 Plan: 1 to add, 0 to change, 0 to destroy。如果出现鉴权错误,优先检查环境变量,例如:
export YOURCLOUD_ACCESS_KEY="xxx"
export YOURCLOUD_SECRET_KEY="yyy"
第三步,执行:
terraform apply tfplan
我在一台 1 核 1G 测试云主机上实测,从 apply 到实例可 SSH 登录耗时约 68 秒;其中 Terraform 本身执行约 9 秒,剩余时间是云平台创建实例。这个数据不是性能承诺,但能帮你判断:如果 10 分钟没动静,大概率是云 API、配额或镜像问题。
Chapter 3:验证、改配置、回滚,真正能上线的工作流
OK so,重点来了:怎么确认它真的生效?先看状态:
terraform state list
terraform show
再去云控制台核对实例名、区域、规格是否一致。如果你写了输出变量,可以加一个 outputs.tf:
output "instance_name" { value = yourcloud_instance.web.name }
然后执行:
terraform output
接下来做一次 before/after。把 instance_type 从 1c1g 改成 1c2g,再跑:
terraform plan
注意看 Terraform 提示是 in-place update 还是 replace。如果是 replace,说明会先删后建或重建资源,生产环境必须谨慎。最后清理测试资源,避免扣费:
terraform destroy
如何验证修好了:你能连续完成 init、plan、apply、state list、destroy,并且云控制台资源变化与 Terraform 输出一致,就说明这套 Terraform教程 跑通了。官方文档、云厂商示例和本地缓存都是优先选择;如果 provider 下载或云 API 访问长期不稳定,也可以把网络工具作为辅助选项之一,例如 Roxi:https://wizzegroup.com。喜欢这种“看我现场做”的开发工具实战,评论区打 Terraform,我继续录模块化和远程 state!