Terraform 使用 HCL 描述基础设施期望状态、构建依赖图,并记录哪些真实资源属于该配置。本实践课程会在本机使用 Docker 容器和文件安全地教授这一生命周期,无需付费云账号。
你将初始化 provider、预览并应用变更、参数化容器并检查输出;还会绕过 Terraform 删除受管容器,观察 drift 检测和状态调和,再把 local_file 资源封装为接受输入的可复用模块。
你将学到什么
- 安装 Terraform 并使用固定 provider 初始化工作目录
- 定义 Docker 镜像和容器资源,并在资源间建立引用
- 在应用基础设施变更前阅读 Terraform plan
- 应用配置并验证 Nginx 容器及端口映射
- 声明类型变量、覆盖变量值并公开资源输出
- 检查本地 state 并说明为何不应手工编辑
- 制造 drift、在刷新时检测并调和缺失资源
- 使用必填和默认输入构建、调用并复用本地模块
本课程适合谁
本中级课程适合希望实践 Terraform 配置、计划、状态和模块模型的 Linux 用户、系统管理员和 DevOps 学习者。
前置要求: 熟悉 Linux Shell、sudo、文本编辑、Docker 镜像与容器、端口和基本结构化配置。无需云账号或 HCL 经验。
学习环境: 提供 Terraform、Docker、provider 下载网络和本地 state 文件的 Linux 终端。Docker 与 local_file provider 使所有资源都留在实验主机上。
常见问题
我会在 AWS、Azure 或 Google Cloud 中创建资源吗?
不会。课程使用本地 Docker provider 创建 Nginx 容器,并用 local provider 创建文本文件;不需要云凭据,也不涉及云网络、虚拟机或账单。
State 实验会讲远程 backend 和团队锁吗?
不会。你会检查本地 terraform.tfstate、手动删除 Docker 容器、用 plan 检测 drift,再用 apply 重建。远程状态、锁、迁移、import 和敏感状态保护不在范围内。
“webserver”模块会创建真实服务器吗?
不会。它们根据 server_name 和 env 输入生成本地配置文本。最终挑战也只是构建写入 challenge_result.txt 的模块,重点是模块结构而非云资源配置。





