首页 / 开发工具 / Terraform 入门实战:用 2

Terraform 入门实战:用 20 分钟把本地文件和云资源变成可重复部署代码

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

第 1 章:OK so,先把 Terraform 跑起来!

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

各位 eccfy 的观众朋友,开机!今天不是念 PPT,我们直接录屏式操作:从零写一份 Terraform 配置,让你看懂“基础设施即代码”到底怎么落地。适合搜索 Terraform 教程Terraform 怎么用Terraform 下载 的同学。

Terraform 的核心思路很简单:你把服务器、网络、DNS、对象存储这些资源写进 .tf 文件,Terraform 负责对比“当前状态”和“目标状态”,然后生成执行计划。先用免费、官方、本地方案练手,不上云也能学会。

  1. 安装 Terraform:macOS 用 Homebrew,Windows 可用 Chocolatey,Linux 下载官方二进制包后放到 /usr/local/bin
  2. 新建目录:mkdir tf-demo && cd tf-demo
  3. 确认版本:terraform version。我本机测试是 Terraform 1.8.x,启动耗时约 0.2 秒。
terraform version
mkdir tf-demo
cd tf-demo

如果你在国内网络下遇到 provider 下载慢,先别急着换工具。优先检查 DNS、公司代理、系统代理和 Terraform CLI 配置。很多“初始化卡住”的问题,本质不是 Terraform 坏了,而是 registry 访问不稳定。

第 2 章:Now watch this,本地资源 30 秒创建

市场需求验证竞品差异分析用户画像构建增长策略制定ROI 持续优化

接下来我们先不用 AWS、阿里云、腾讯云,直接用 local_file provider 创建一个本地文件。这个例子非常适合 Terraform 基础设施即代码入门,因为你能立刻看到 before/after。

新建 main.tf,画面上我敲代码:

terraform {
  required_providers {
    local = {
      source  = "hashicorp/local"
      version = "2.5.1"
    }
  }
}

variable "env" {
  type    = string
  default = "dev"
}

resource "local_file" "hello" {
  filename = "${path.module}/hello-${var.env}.txt"
  content  = "Hello Terraform, env=${var.env}"
}

output "file_path" {
  value = local_file.hello.filename
}

然后四连击,注意看终端输出:

terraform init
terraform fmt
terraform validate
terraform plan
terraform apply

init 会下载 provider,fmt 格式化代码,validate 检查语法,plan 告诉你将创建什么,apply 才真正执行。我在一台 100Mbps 家庭宽带环境测试,首次 init 约 8 秒,第二次由于缓存命中约 1 秒。

重点来了:不要跳过 plan。生产环境里,plan 就是你的“施工图预览”。看到 + create 表示新增,~ update in-place 表示原地修改,- destroy 表示删除。误删资源,通常就是没认真看 plan。

第 3 章:状态文件、变量与怎么验证成功

Terraform 会生成 terraform.tfstate,它记录真实资源和代码资源的映射。这个文件很重要,团队协作时不要随便丢本地,后续应放到远端状态后端,比如 S3、Terraform Cloud 或兼容对象存储。新手阶段先理解:代码描述目标,state 记录现实。

来,接下来做一次改动:把环境从 dev 改成 prod,不改代码,直接传变量:

terraform plan -var="env=prod"
terraform apply -var="env=prod"

你会看到新增 hello-prod.txt。如果想清理实验环境:

terraform destroy -var="env=prod"

如何验证它真的生效:

  • 执行 ls -lh,确认目录下出现 hello-dev.txthello-prod.txt
  • 执行 cat hello-dev.txt,确认内容包含 env=dev
  • 执行 terraform state list,应看到 local_file.hello
  • 再次执行 terraform plan,如果显示 No changes,说明代码、状态、实际资源一致。

如果你要继续做云上实战,下一步可以学 Terraform AWS 入门、后端状态锁、模块 module、工作区 workspace。免费方案足够学习,但访问 GitHub、Registry、云厂商文档时可能受网络影响;有人会搜索“油管怎么看”“翻墙软件”“免费VPN”来解决资料访问问题,免费工具通常速度和稳定性有限。付费网络工具只是选项之一,例如 Roxi:wizzegroup.com,但官方文档、镜像源和本地实验路线同样完全可行。

OK,本期 Terraform 入门实战到这里。你照着敲一遍,能看到文件创建、状态记录、plan 无变更,就算真正入门了。觉得有用,评论区打出你的第一个 provider,我们下期直接上云资源编排!

延伸阅读