The prolific Graham Gilbert is working on a new tool: https://github.com/grahamgilbert/imagr
Imagr is an application designed to be run from a NetInstall environment. It is able to restore a disk image and install packages on a target volume.
Though Graham claims it is not intended to be a replacement for DeployStudio, I think in time it could very well be exactly that, at least for many people/organizations.
Some exciting things about Imagr:
- It is open source! DeployStudio is free, but the source is closed. Open source means you can look at the code and see what it is doing. You can fix bugs and perhaps even help add features to the product.
- It’s written in Cocoa-Python, with much of the “interesting” tasks in Python — a language many OS X admins are familiar with.
- And most importantly: it does not require a specialized server: it can work with any plain-old web server. This means that you (potentially) can eliminate the last OS X device in your server room/data center. Almost every service of interest to OS X admins can be run on platforms other than OS X with the huge exception of a DeployStudio server. If Imagr can meet your imaging/machine build needs, you can finally get rid of that poor Mac mini sitting on a shelf in the server room.
Graham has posted detailed instructions on how to build a NetBoot image that contains Imagr. But if you just want to take a look and play with the tool, and you have an existing DeployStudio NBI with Python support included, you can play with Imagr without needing to build a new NBI. More importantly, you can test new versions (or work on the code yourself and test new versions you build) without having to build a new NBI each time.
- You need a DeployStudio NetBoot set with Python included. If you want to build a new one (perhaps because your existing one doesn’t have Python support), Rich Trouton has the basic process covered here: https://derflounder.wordpress.com/2013/07/15/installing-custom-os-x-builds-using-deploystudio-and-createosxinstallpkg/
- Build Imagr using the instructions in the READ ME: https://github.com/grahamgilbert/imagr#building-a-netinstall
- Copy the Imagr.app to the DeployStudio file share. I created a new “testing” directory at the same level as the existing Masters, Packages, and Scripts directory, and copied the app into that directory.
Now you can boot a machine from the DeployStudio runtime NetBoot set, and open Terminal.app from the Utilities menu.
At the command line, type `mount`. You should see a list of mounted filesystems. You should see the DeployStudio file share mounted at /private/var/tmp/DSNetworkRepository.
cd to that directory. If you created a testing folder and put Imagr.app in the testing folder, cd into testing.
Type `ls`. If everything went OK, you should see Imagr.app. You can run it like so:
And after a few seconds (give it a bit, it does take several seconds to launch), Imagr will open.
Most likely it will complain that there is no Server URL defined — we have not yet set up any server-side resources, nor have we told Imagr where to find them. That’s for my next post…
In the terminal window, type Control-C to stop Imagr, or open a second window and type `killall Imagr` — we have just completed our first test.