为 Mac 管理员提供的速成课程指南,帮助他们从手动配置("ClickOps")转变为使用 Terraform 和 GitOps 工作流的自动化、版本控制的基础设施管理。
第 1 部分:理解基础知识
在深入研究 Jamf 特定的实施之前,必须理解使基础设施即代码有价值的核心概念。
什么是版本控制?
版本控制是现代软件开发的基础——现在也是基础设施管理的基础。如果你对这些概念不熟悉,从这里开始:
什么是基础设施即代码 (IaC)?
基础设施即代码是指通过代码而不是手动流程来管理和配置基础设施。与其在 UI 中点击配置设置,你可以在配置文件中定义所需的状态。
为什么 IaC 很重要
| 优势 |
描述 |
| 版本控制 |
每项变更都记录在案,具有完整历史——谁改了什么、何时改的以及为什么 |
| 一致性 |
消除"配置漂移",即环境缓慢偏离预期状态的情况 |
| 可重复性 |
在开发、测试和生产环境中部署相同的配置 |
| 回滚 |
出现问题时立即还原到之前已知的良好状态 |
| 协作 |
团队可以通过拉取请求在应用变更前进行审查 |
| 可审计性 |
用于合规性和故障排除的完整审计日志 |
| 灾难恢复 |
从代码在几分钟内重建整个环境 |
| 减少人为错误 |
自动化消除手动配置错误 |
IaC 学习资源
什么是 GitOps?
GitOps 通过使用 Git 作为基础设施的单一事实来源扩展 IaC。所有变更都通过 Git 进行——通过需要同行审查的拉取请求——而自动化系统确保你的实时环境与存储库中定义的内容相匹配。
GitOps 工作流
- 开发人员通过拉取请求提议变更
- 团队审查并讨论变更
- 自动检查验证配置
- 变更获得批准并合并
- 自动化应用变更到实时系统
- 持续监控确保状态与 Git 匹配
GitOps 的主要优势
| 优势 |
工作原理 |
| 拉取请求批准 |
变更在部署前需要同行审查——没有未经授权的修改 |
| 审计日志 |
每项变更都是一个 Git 提交,包含作者、时间戳和描述 |
| 简单回滚 |
使用 git revert 还原到任何之前的状态——系统自动协调 |
| 自我记录 |
你的 Git 历史就是你的变更文档 |
| 漂移检测 |
系统持续比较实时状态与声明的状态,并在差异时发出警报 |
| 协作 |
异步代码审查使分布式团队能够有效协作 |
GitOps 学习资源
什么是 Terraform?
Terraform 是 HashiCorp 的开源基础设施即代码工具。它使用声明式配置语言 (HCL) 来定义资源,并适用于几乎任何具有 API 的平台——包括 Jamf。
Terraform 概念
| 概念 |
描述 |
| 提供商 |
使 Terraform 能够与特定平台交互的插件(例如 AWS、Azure、Jamf) |
| 资源 |
基础设施的一个组件(例如 Jamf 策略、配置文件或智能组) |
| 状态 |
Terraform 对当前基础设施的记录——用于规划和应用变更 |
| 计划 |
在实际应用变更前预览 Terraform 将进行的更改 |
| 应用 |
执行计划的变更以将基础设施带到所需状态 |
| 模块 |
可重用、可共享的 Terraform 配置 |
Terraform 学习资源
第 2 部分:Jamf 的 IaC - 介绍
既然你已经理解了基础知识,让我们看看这些概念如何具体应用于 Jamf 环境。
Jamf + IaC 介绍性内容
如果你完全是第一次将 IaC 概念应用于 Jamf,从这里开始:
播客/视频介绍
博客文章
第 3 部分:JNUC 2025 会议
涵盖实际实施和高级用例的会议讲座:
第 4 部分:Jamf 的 Terraform 提供商
Terraform 提供商是使 Terraform 能够与特定平台交互的插件。以下是可用于 Jamf 产品的提供商:
Terraform 提供商
| 提供商 |
维护者 |
描述 |
链接 |
| deploymenttheory/jamfpro |
社区 |
与 Classic API 和 Jamf Pro API 交互 |
Terraform Registry |
| terraform-provider-jsctfprovider |
Jamf |
与 Jamf Security Cloud 交互 |
Terraform Registry |
| terraform-jamf-platform |
Jamf |
利用 deploymenttheory 和 jsctfprovider 的 Terraform 模块 |
Terraform Registry |
| terraform-provider-jamfplatform |
Jamf |
与 Jamf Platform API 交互。该 API 仍处于测试阶段。 |
Terraform Registry |
第 5 部分:社区资源和启动项目
这些资源由 Jamf 员工和社区成员创建,提供实用示例和模板:
博客文章
启动模板
第 6 部分:建议的学习路径
对于完全初学者(无 Git/IaC 经验)
- 学习 Git 基础 — 完成上面的 Git 教程之一
- 理解 IaC 概念 — 阅读 AWS 或 Red Hat IaC 解释
- 观看介绍 — Jamf After Dark"我不知道 Terraform 是什么"
- 阅读"为什么" — Jamf 博客 ClickOps 到 GitOps
- 尝试 Terraform — 完成基本的 HashiCorp 教程(Docker 或云提供商)
对于熟悉 Git/DevOps 的人
- 阅读 Jamf 博客 — ClickOps 到 GitOps + GitOps 工作流
- 观看 JNUC 讲座 — 选择最相关于你环境的讲座
- 克隆启动存储库 — 尝试
terraform-jamfpro-starter
- 在测试环境中试验 — 永远不要从生产环境开始!
对于准备实施的人
- 审查提供商文档 — 理解可用的资源
- 规划状态管理 — 考虑 HCP Terraform Cloud 用于团队协作
- 定义工作流 — 建立 PR 审查流程和 CI/CD 管道
- 从小处开始 — 从几个资源开始,逐步扩展
- 记录所有内容 — 你的将来会感谢你
快速参考:价值主张
| 传统"ClickOps" |
基础设施即代码 |
| 直接在 UI 中进行变更 |
在代码文件中定义变更 |
| 没有谁改了什么的记录 |
完整的 Git 历史,包含作者和时间戳 |
| 难以复制环境 |
每次都实现相同的部署 |
| 手动灾难恢复 |
从代码在几分钟内重建 |
| 变更立即生效 |
部署前拉取请求审查 |
| "昨天还能用"的调试 |
比较任何两个时间点 |
| 部落知识 |
自我记录的配置 |
| 一次一个环境 |
始终管理数百个实例 |
其他资源
官方文档
一般 IaC 最佳实践
认证
最后更新: 2026 年 2 月