jamformer は、既存の Jamf インスタンスから Terraform プロジェクトをブートストラップする CLI ツールです。環境に接続し、Jamf API(または Protect と Platform の場合は terraform query)を介してリソースを検出し、Terraform インポートブロックを生成し、terraform plan -generate-config-out を実行して HCL を生成してから、クロスリソース参照を追加してファイルをリソースタイプ別に整理する後処理を行います。結果は、学習と改善の対象となるリアルなスターティングスキャフォルドです。本番対応コードではなく、正直な初期案です。
機能
- 以下の Terraform プロバイダーに対応: Jamf Pro、Protect、Platform、Security Cloud(JSC)
- ポリシー、スクリプト、構成プロファイル、スマートグループおよび静的グループ、コンピュータおよびモバイルプレステージ、拡張属性、パッケージ、カテゴリ、API インテグレーション など 100 以上のリソースタイプを検出およびエクスポート
- 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 以降