Terraform - 基础设施即代码 #

什么是 Terraform? #

Terraform 是 HashiCorp 公司开发的开源基础设施即代码(Infrastructure as Code,IaC)工具,使用声明式配置语言 HCL(HashiCorp Configuration Language)来定义和管理基础设施资源。它支持多云平台,可以统一管理 AWS、Azure、GCP、Kubernetes 等各种基础设施。

Terraform 的优势 #

优势 说明
多云支持 统一管理 AWS、Azure、GCP 等云平台
声明式语法 描述期望状态,而非操作步骤
执行计划 变更前预览,安全可控
状态管理 跟踪资源状态,支持远程协作
模块化 可复用的配置模块,提高效率
生态丰富 数千种 Provider 和模块可用

文档结构 #

本指南按以下结构组织,适合初学者按顺序学习:

1. 入门介绍 #

主题 描述 文档链接
Terraform 简介 什么是 IaC、Terraform 的历史与特点 intro.md

2. 基础入门 #

主题 描述 文档链接
安装与配置 各平台安装、环境设置、CLI 基础 installation.md
HCL 语法基础 HCL 语法结构、块、参数、表达式 hcl-syntax.md
第一个资源 创建第一个基础设施资源 first-resource.md
Provider 配置 云服务提供商配置与认证 providers.md

3. 核心概念 #

主题 描述 文档链接
资源管理 资源定义、生命周期、依赖关系 resources.md
变量 输入变量定义与使用 variables.md
输出值 输出资源属性信息 outputs.md
本地值 局部变量与表达式复用 locals.md
数据源 查询已有资源信息 data-sources.md

4. 状态管理 #

主题 描述 文档链接
状态基础 状态文件结构与作用 state-basics.md
远程状态 远程存储与团队协作 remote-state.md
状态命令 状态操作命令详解 state-commands.md

5. 模块化 #

主题 描述 文档链接
模块基础 模块创建与使用 modules-basics.md
模块组合 模块嵌套与组合模式 module-composition.md
模块最佳实践 模块设计原则与规范 module-best-practices.md

6. 高级主题 #

主题 描述 文档链接
内置函数 Terraform 函数库详解 functions.md
表达式与条件 条件判断、循环、表达式 expressions.md
Provisioners 资源创建后执行操作 provisioners.md
工作空间 多环境管理 workspaces.md

7. 常用 Provider #

主题 描述 文档链接
AWS Provider AWS 资源管理 aws-provider.md
Azure Provider Azure 资源管理 azure-provider.md
GCP Provider Google Cloud 资源管理 gcp-provider.md
Kubernetes Provider Kubernetes 资源管理 kubernetes-provider.md

8. 最佳实践 #

主题 描述 文档链接
项目结构 代码组织与目录结构 project-structure.md
命名规范 资源命名最佳实践 naming.md
测试策略 Terratest 与测试方法 testing.md
CI/CD 集成 自动化流水线集成 ci-cd.md

9. 实战案例 #

主题 描述 文档链接
Web 应用部署 多层 Web 应用基础设施 web-app.md
VPC 网络搭建 完整 VPC 网络架构 vpc.md
Kubernetes 集群 EKS/AKS/GKE 集群部署 kubernetes-cluster.md

学习建议 #

初学者路线 #

text
入门介绍 → 基础入门 → 核心概念 → 状态管理

进阶路线 #

text
模块化 → 高级主题 → 常用 Provider

高级路线 #

text
最佳实践 → 实战案例 → 生产实践

学习资源 #

  • 官方文档:Terraform Documentation
  • 官方教程:HashiCorp Learn
  • 认证考试:HashiCorp Certified: Terraform Associate
  • 推荐书籍:《Terraform: Up & Running》、《Infrastructure as Code》

开始学习 #

准备好了吗?让我们从 Terraform 简介 开始你的基础设施即代码学习之旅!

最后更新:2026-03-29