课程大纲
模块 1:基础设施即代码与 Terraform 简介
- IaC 概念及其对本地和混合环境的优势。
- Terraform 概述:提供程序、资源、状态和生命周期。
- 安装 Terraform、Azure CLI 及所需工具。
- 首次实践:编写简单的 Terraform 配置并在本地应用。
模块 2:HashiCorp 配置语言(HCL)与配置基础
- HCL 语法、资源、属性和表达式。
- 变量、输出、本地变量和类型约束。
- 使用 Terraform CLI:init、plan、apply、destroy 和 fmt。
- 实践实验室:为本地资源和 Azure 资源构建参数化配置。
模块 3:提供程序、资源与 Azure 提供程序基础
- 了解提供程序及提供程序配置(AzureRM 提供程序)。
- 将基础设施映射到 Terraform 资源(网络、计算、存储)。
- 管理 Azure 认证和服务主体以实现自动化。
- 实践:通过 Terraform 配置 Azure 虚拟网络和简单虚拟机。
模块 4:状态管理、后端与协作
- Terraform 状态:目的、格式和生命周期考虑。
- 使用 Azure 存储账户的远程后端和状态锁定策略。
- 工作空间、环境和团队协作模式。
- 实验室:在 Azure 存储中配置远程状态并执行多用户工作流。
模块 5:模块化、可重用性与最佳实践
- 编写和使用 Terraform 模块。
- 模块输入/输出、版本控制和注册表模式。
- 文件夹布局、命名约定和可维护的仓库结构。
- 实践:创建可重用的 Azure VM + 磁盘 + 网络模块,并在不同环境中测试。
模块 6:管理 Azure 虚拟设备与本地集成
- 通过 Terraform 管理 Azure 虚拟机、虚拟桌面组件和设备生命周期。
- 混合设备管理模式:连接本地资源和 Azure 管理的设备。
- 通过数据源和外部提供程序集成容量或设备管理系统。
- 实验室:部署代表操作单元的 Azure 虚拟机群,并配置库存标记和基本监控。
模块 7:CI/CD、自动化与部署管道
- 将 Terraform 与 CI/CD(GitHub Actions、Azure DevOps 管道)集成。
- 使用安全秘密和服务主体自动化 plan/apply。
- 策略即代码基础(Sentinel 或 Open Policy Agent 模式)和预部署检查。
- 实践:创建一个简单的 GitHub Actions 工作流,针对沙盒订阅进行 Terraform 计划和应用。
模块 8:安全性、秘密与操作实践
- 管理秘密:Azure Key Vault 集成,避免在状态文件中存储敏感数据。
- 访问控制、RBAC 和自动化账户的最小权限。
- 漂移检测、状态调和与基本修复实践。
- 清单:Terraform 管理的基础设施的备份、审计和治理。
模块 9:测试、调试与故障排除
- 调试 Terraform 配置并有效读取计划差异。
- 单元和集成测试方法(terraform validate、tflint、kitchen-terraform)。
- 常见错误模式与解决策略。
- 实验室:运行验证和 linting 工具并修复发现的问题。
模块 10:毕业项目 — 混合部署场景
- 设计练习:使用所学模式规划一个本地 + Azure 设备部署。
- 使用模块、远程状态和 CI/CD 管道片段实现核心组件。
- 展示解决方案,讨论权衡并审查操作手册。
总结与下一步
要求
- 了解基本的网络和虚拟化概念。
- 熟悉 Windows 或 Linux 命令行。
- 具备云或本地基础设施概念的基本知识。
目标受众
- 系统管理员和平台工程师。
- 刚开始接触基础设施即代码的 DevOps 从业者。
- 管理混合(本地 + Azure)基础设施的 IT 团队。
客户评论 (5)
我很喜欢这个练习的技术方面 - 看到Terraform的实际应用并能够看到在Azure中创建资源的过程非常好。
Brett Hawson - Reach Plc
课程 - Terraform on Microsoft Azure
机器翻译
培训师的灵活性,可以根据小组反馈或兴趣领域调整知识共用
Alexandru - Orange Services
课程 - Advanced Terraform: Efficient Infrastructure as Code
机器翻译
它澄清了我对 terraform 的一些不了解。
Catalin - DB Global Technology
课程 - Advanced Terraform - 3 Days
机器翻译
Deep knowledge
Akhand Raj Jaiswal - BMW
课程 - Advanced Terraform
Trainer has good knowledge over the content and answered all my queries