jamformer 是一个 CLI 工具,可从现有 Jamf 实例引导 Terraform 项目。它连接到您的环境,通过 Jamf API(或针对 Protect 和 Platform 使用 terraform query)发现资源,生成 Terraform import 块,运行 terraform plan -generate-config-out 生成 HCL,然后对输出进行后处理以添加跨资源引用并按资源类型组织文件。结果是一个真实的起始框架供学习和改进——不是生产就绪代码,而是一份诚实的初稿。
功能特性
- 支持以下 Terraform 提供程序:Jamf Pro、Protect、Platform 和 Security Cloud (JSC)
- 发现和导出 100+ 种资源类型,包括策略、脚本、配置文件、智能和静态组、计算机和移动设备预配置、扩展属性、包、类别、API 集成等
- 后处理将 Jamf ID 重写为跨资源 Terraform 引用,使关系显式而非硬编码整数
- 将嵌入式内容(脚本、配置文件、应用配置、品牌资产)提取到单独的支持文件
- 通过 gitleaks 进行密钥扫描,配合 Jamf 特定规则和交互式补救嵌入式凭证(密码、API 令牌、WiFi 密码、LDAP 和 SMTP 机密)
- 紧凑模式将统一资源类型整合为
for_each模式,生成更简洁、更接近生产的输出 - 实验性多环境模式为管理预发布和生产实例的团队生成共享模块和按环境目录结构
- 相对于 Jamf 为只读——绝不修改、创建或删除实例中的任何内容
要求
- Terraform 1.14 或更高版本(如不存在则自动下载)
- Jamf Pro(审计员角色或同等权限)、Jamf Protect、Jamf Platform 或 Jamf Security Cloud
- Protect、Platform 和 JSC 的 OAuth2 客户端凭证;Jamf Pro 的用户名/密码或 OAuth2
- Go 1.26.2 或更高版本以从源代码构建