Terraform / OpenTofu

Terraform IaC

基础设施即代码——用 HCL 声明式语言管理云资源,让云端资源像代码一样可版本化、可复现

声明式配置
状态管理
模块复用
多云支持
10核心章节
3000+支持 Provider
OpenTofu开源替代

为什么基础设施即代码(IaC)是现代运维的基础?

传统运维中,服务器配置依靠工程师手动操作控制台或 SSH——这导致环境难以复现、变更难以追踪、协作容易冲突。当你需要在生产环境重建一套与测试完全一致的基础设施时,这种手工方式几乎不可能做到。

Terraform 由 HashiCorp 在 2014 年创建,用 HCL(HashiCorp Configuration Language) 声明式地描述你想要的基础设施状态,然后由 Terraform 负责将真实云资源调整到这个目标状态。整个过程可记录在 Git 仓库中,像代码一样 review、回滚、协作。

2023 年 HashiCorp 将 Terraform 改为 BSL 许可,社区 fork 出了 OpenTofu——一个与 Terraform 100% 兼容的开源替代,由 Linux Foundation 托管。本教程同时适用于两者。

核心特性

声明式管理云资源的最佳工具

📝

HCL 语言

人类可读的配置语言,比 YAML/JSON 更强大,支持变量、函数、循环与条件。

🗂️

状态管理

tfstate 文件追踪真实资源与配置的对应关系,支持远程后端协作。

🔌

Provider 生态

3000+ Provider 覆盖 AWS、GCP、Azure、阿里云、Kubernetes、GitHub 等所有主流平台。

📦

模块系统

封装可复用的基础设施模块,Terraform Registry 提供大量社区模块。

👁️

Plan 预览

apply 前先 plan,预览所有变更,避免意外修改生产资源。

👥

团队协作

远程 state、Workspace 隔离、Atlantis/Spacelift 实现 GitOps 工作流。

课程目录

系统掌握 Terraform,从入门到生产级最佳实践

Chapter 01

IaC 基础与 Terraform/OpenTofu 架构

命令式 vs 声明式、Terraform vs Pulumi vs CDK、OpenTofu 背景、工作流 init/plan/apply、核心概念体系。

IaCOpenTofu工作流
Chapter 02

HCL 语法:资源、变量与输出

HCL 基础语法、resource/variable/output/locals 块、类型系统、tfvars 文件配置管理。

HCLvariableoutput
Chapter 03

Provider 配置:AWS/GCP/Azure

provider 块配置、AWS EC2/VPC/S3 资源创建、多 provider 认证方式、环境变量认证。

AWSGCPprovider
Chapter 04

状态管理:state 文件与远程后端

tfstate 结构解析、state 操作命令、S3+DynamoDB 远程后端、state 加密与协作安全。

tfstateS3后端远程状态
Chapter 05

模块系统:创建与复用模块

module 块调用、模块目录结构约定、Terraform Registry、私有模块、for_each 动态模块。

moduleRegistry复用
Chapter 06

数据源、条件与循环

data 数据源查询、count vs for_each、条件表达式、dynamic 块、for 表达式与内置函数。

datafor_eachdynamic
Chapter 07

Terraform Cloud 与工作空间

workspace 环境隔离、VCS 集成触发 plan、remote 后端、团队权限模型、Sentinel 策略。

workspaceCI/CDSentinel
Chapter 08

测试:Terratest 与 tf-validate

terraform validate/fmt/lint、checkov 安全扫描、Terratest Go 测试框架、模块测试策略。

Terratestcheckov测试
Chapter 09

迁移:import 现有资源

terraform import 命令、import 块(1.5+)、Terraformer 逆向生成 HCL、drift 检测、moved 块重构。

importTerraformerdrift
Chapter 10

生产最佳实践:安全与团队协作

最小权限 IAM、secrets 不入 state、环境隔离、Atlantis GitOps、Infracost 成本估算。

安全AtlantisInfracost