首页 / 开发工具 / Terraform基础设施即代码入门

Terraform基础设施即代码入门教程:从本地资源到可复现部署的完整实战

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

第1章:先把 Terraform 跑起来

2020行业萌芽2021快速增长2022竞争加剧2023洗牌整合2024成熟稳定

大家好,这次我们不讲抽象概念,直接打开终端,做一个能看到结果的 Terraform基础设施即代码入门教程。Terraform 的核心流程只有四步:编写配置、初始化、预览变更、执行变更。

先确认环境。安装 Terraform CLI 后执行:

terraform version

我本机使用 Terraform 1.9.8,macOS 和 Linux 都可以直接通过包管理器安装,Windows 可使用 Chocolatey 或官方安装包。接下来创建项目目录:

mkdir tf-demo
cd tf-demo
touch main.tf

把下面内容写入 main.tf。这里使用官方维护的 local provider,不创建云资源,不会产生云账单,特别适合第一次练习 Terraform安装教程 和基本语法。

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

provider "local" {}

resource "local_file" "demo" {
  filename = "${path.module}/hello.txt"
  content  = "Managed by Terraform\n"
}

第2章:初始化、预览,再执行

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

OK,屏幕重点来了。先格式化并初始化插件:

terraform fmt
terraform init

看到 “Terraform has been successfully initialized” 后,再运行:

terraform validate
terraform plan

plan 只预览,不修改文件。正常情况下会显示 “Plan: 1 to add, 0 to change, 0 to destroy”。确认无误后执行:

terraform apply

终端出现交互提示时输入 yes。现在看目录,会多出 hello.txt、.terraform 目录和 terraform.tfstate。打开 hello.txt,内容应该是 “Managed by Terraform”。这就是 Terraform怎么用 的最小闭环:配置文件是期望状态,state 是 Terraform 对现实状态的记录。

Now watch this:手动删除 hello.txt,再执行:

terraform plan
terraform apply -auto-approve

Terraform 会发现资源缺失,并重新创建它。我在本机测试,整个初始化约 3 秒,apply 通常低于 1 秒;实际时间取决于网络和插件缓存。

第3章:状态文件、变更和验证

修改 main.tf 中的 content,例如增加一行,再运行 terraform plan。你会看到资源从原内容变为新内容。不要直接手改 state,也不要把包含敏感信息的 state 上传到公开仓库。

建议立即创建 .gitignore:

.terraform/
*.tfstate
*.tfstate.*
*.tfvars
*.tfvars.json
crash.log

多人协作或部署云资源时,应使用远程 state,并启用锁定机制;本地 state 只适合学习和单人实验。完成测试后执行:

terraform destroy

输入 yes 后,hello.txt 应该被删除。

如何验证修复有效:执行 terraform validate 必须返回 Success;执行 terraform plan 在没有改动时应显示 “No changes”;运行 terraform apply 后检查文件内容,再执行 terraform destroy 确认资源能被完整清理。想继续实战,可以在评论区告诉我你准备做 AWS、阿里云还是 Kubernetes 版本。

延伸阅读