During day two of the JAMF Nation User Conference (JNUC), Jeffrey Compton—Macintosh platform architect at a Fortune 500 financial services company—explained how to use the API with a JSS Migration script to migrate an existing JAMF Software Server (JSS) to a clean, new JSS.
The need came about as their Mac estate grew and Compton needed to upgrade the server infrastructure powering the JSS. They were moving from a single Windows VM to multiple RedHat Linux VMs. Instead of rebuilding the JSS by hand, Compton set out to build the JSS Migration utility. This may be an advantage if you're upgrading hardware, migrating to the cloud, or if a database restore isn't available to you.
One point he wanted to emphasize: this is not intended for ongoing JSS synchronization or replication. (For that, look to the JSS-to-JSS plugin.) It's not intended as a JSS backup solution either.
The benefit for this utility is that it lets you set up a new, clean JSS and automatically migrate administrative resources like policies, smart groups, categories, etc. It doesn't migrate computers directly—instead, run a policy from the old JSS that enrolls each Mac on the new JSS. Compton's full migration took 15-20 minutes to migrate a JSS with about 2,000 Macs. Once completed, his new JSS was "so much faster, way better for users as well, with faster Self Service experience."
The utility interface is written in Bash and is easy to use, even if you're not a command line expert. A few items can't be moved automatically with the API, so he's developed additional scripts for Self Service policy icons, archiving and disabling JSS policies, and adding computers to static groups on enrollment.
The JSS Migration Utility is available on GitHub and Compton encourages others to use it, improve it, and share ideas.