Terraform 基础设施即代码

学习 Terraform 基础设施即代码 (Infrastructure As Code)。本模块涵盖 Terraform 概念和设置、定义资源、变量和输出、处理状态 (State)、Terraform 模块。您将通过实践操作实验 (hands-on labs) 和真实世界的挑战来掌握这些必要的 Linux 技能。

DevOps 工程师LinuxDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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 的模块,重点是模块结构而非云资源配置。

教师

labby
Labby
Labby is the LabEx teacher.