Use git as the source of truth for your scripts! Utilizes CI/CD pipelines that uploads the most recently changed scripts to a Jamf Pro server.
This is a rewrite of git4jamfpro (which is a rewrite of git2jss). Both very good scripts, however I quickly found out both of them still use the classic API endpoint and not the new Jamf Pro API Endpoint. (I also preffered json instead of xml files)
- No python dependency
- No xmlstarlet dependency
- Uses Client ID & Client Secrets through API roles and clients instead of Bearer Auth
- Allows you to upload very large scripts (INSTALLOMATOR for example)
- Allows you to download all scripts in parallel from a Jamf Pro server
-
A Jamf Pro instance (ofcourse)
-
A git vcs server (github, bitbucket, ...)
-
jq
installed -
A generated Client ID & Client Secret for your Jamf Pro instance
-
in Text..
- Create Scripts
- Read Scripts
- Update Scripts
- Create Computer Extension Attributes
- Create Mobile Device Extension Attributes
- Create User Extension Attributes
- Read Computer Extension Attributes
- Read Mobile Device Extension Attributes
- Read User Extension Attributes
- Update Computer Extension Attributes
- Update Mobile Device Extension Attributes
- Update User Extension Attributes
-
-
A CI/CD tool for automation (Jenkins, CircleCI, Bitbucket Pipelines, GitHub Workflows, ...)
-
Fork / Download this repository
-
Download all of your current scripts & extension attributes:
./jamfScriptSync.sh --url <YOUR_JAMF_PRO_SERVER> \
--clientid <API_Client_ID> \
--clientsecret <API_Client_Secret> \
--download-scripts \
--download-eas
- Commit the repository populated with scripts to your git:
git add .
git commit -a -m "feat(init): initial setup"
- Push this commit to your own repository. (wherever you'll want to have those scripts stored)
After you're done with the initial setup, your Pipelines could look something like this (ofcourse this depends on your own setup, and these are just examples):
Now you can make changes to your scripts in your own repository, push those changes to git and watch your CI/CD do the rest of the job. 😄
All contributions are greatly appreciated! It'd make my day if you could read the Contribution Guidelines first.
I'm looking forward to your suggestions / improvements. :)