jamformer ist ein CLI-Tool, das ein Terraform-Projekt aus einer vorhandenen Jamf-Instanz bootstrapt. Es verbindet sich mit Ihrer Umgebung, entdeckt Ressourcen über die Jamf API (oder terraform query für Protect und Platform), generiert Terraform-Import-Blöcke, führt terraform plan -generate-config-out aus, um HCL zu erzeugen, und verarbeitet die Ausgabe dann nach, um Cross-Ressourcen-Referenzen hinzuzufügen und Dateien nach Ressourcentyp zu organisieren. Das Ergebnis ist ein realistisches Start-Gerüst zum Lernen und Verfeinern – nicht produktionsreifer Code, sondern ein ehrlicher erster Entwurf.
Features
- Unterstützt die folgenden Terraform-Provider: Jamf Pro, Protect, Platform und Security Cloud (JSC)
- Entdeckt und exportiert über 100 Ressourcentypen, einschließlich Richtlinien, Skripts, Konfigurationsprofile, intelligente und statische Gruppen, Computer- und Mobile-Prestages, Erweiterungsattribute, Pakete, Kategorien, API-Integrationen und mehr
- Nachbearbeitung schreibt Jamf-IDs in Cross-Ressourcen-Terraform-Referenzen um, sodass Beziehungen explizit sind statt hartcodierter Ganzzahlen
- Extrahiert eingebettete Inhalte (Skripts, Profile, App-Konfigurationen, Branding-Assets) in separate Unterstützungsdateien
- Secret-Scanning über gitleaks mit Jamf-spezifischen Regeln und interaktiver Behebung für eingebettete Anmeldedaten – Passwörter, API-Token, WiFi-Passphrasen, LDAP- und SMTP-Secrets
- Kompakter Modus konsolidiert einheitliche Ressourcentypen in
for_each-Muster für saubere, produktionsnahe Ausgabe - Experimenteller Multi-Environment-Modus generiert eine gemeinsame Modul- und Pro-Umgebungsverzeichnisstruktur für Teams, die Staging- und Produktionsinstanzen verwalten
- Schreibgeschützt gegenüber Jamf – ändert, erstellt oder löscht niemals etwas in Ihrer Instanz
Anforderungen
- Terraform 1.14 oder später (wird automatisch heruntergeladen, falls nicht vorhanden)
- Jamf Pro (Auditor-Rolle oder gleichwertig), Jamf Protect, Jamf Platform oder Jamf Security Cloud
- OAuth2-Client-Anmeldedaten für Protect, Platform und JSC; Benutzername/Passwort oder OAuth2 für Jamf Pro
- Go 1.26.2 oder später zum Erstellen aus der Quelle