So, there has been a lot of on and off discussion about InstaDMG over the years. I have heard the debate from all sides of InstaDMG. From the supporters and the naysayers. Overall, in my personal and professional opinion it is a very nice and powerful tool that can compliment the JAMF Software Suite. That being said I want to make clear you do not need to use InstaDMG, Casper can function with out it. So, here is an unsorted list on some of the benefits of using InstaDMG with Casper.
This demo will be for OS X 10.6.x because I don't have any Lion production machines yet so I do not fully support it. Though from what I read, Lion does in fact work.
Creates a never-been-booted pristine OS
Can be used to update your OS image file very easily
Can be used with Casper very easily
Can be ran and forgot about until it completes
So, now lets get started. First you will need to download InstaDMG from it's project page, found here:
http://code.google.com/p/instadmg/
So, I downloaded the zip file and extracted it to my home folder, and it is basically just a collection of Python scripts. Screen shot here:
So, now I insert my Snow Leopard disk. You just open up the terminal and navigate to the python script and execute it with your installer DVD in the optical drive, the rest is taken care for you. I do not think it works on restore DVDs, so you will need a retail OS Disk. It will complete and put the output files in the InstaDMG folder. Note I am running my terminal session as root, via sudo -s. I am comfortable enough with my skills in the command line to do this for brief projects like using InstaDMG. I strongly suggest you use sudo instead of a root session for best practices. I know, I know, lead by example, but I wanted to bust this out quickly.
Now, InstaDMG can also amalgamate OS X updates into your image file and output it to the output folder. This will create an up-to-date OS X OS image file, which is pristine and never been booted. Perfect for modular configurations. You can manually edit the catalog file to install specific updates you want. In my example, I had to add in the MacBook Air updates because we were deploying 6,000 of them and I wanted them in there. Here is my catalog file, these are provided with the InstaDMG package but I modified them to fit my organization's needs.
Catalog files are located in the InstaDMG folder, under /Addons/Instaup2Date/CatalogFiles
# Creates a 10.6 image with all the items that would appear in software update
# $Rev: 414 $ from $Date: 2011-01-30 20:36:01 -0500 (Sun, 30 Jan 2011) $
Installer Disc Builds: 10A432, 10B504, 10C540, 10D573, 10D575, 10F569
Output Volume Name: Macintosh HD
Output File Name: 10.6.8_base
OS Updates:
Mac OS X 10.6.8 Combo Update http://support.apple.com/downloads/DL1399/en_US/MacOSXUpdCombo10.6.8.dmg sha1:7e22a53b62bf16f44fbba4042606af91888335cf
iTunes 10.1.2 http://appldnld.apple.com/iTunes10/061-9991.20110127.ZxsE3/iTunes10.1.2.dmg sha1:75304d4f16f8a790f5a819b04a59b98b563a062f
Safari 5.0.3 http://appldnld.apple.com/Safari5/061-9477.20101118.Sfr34/Safari5.0.3SnowLeopard.dmg sha1:83e91419951bc0b58d09c82df94571b1cb03dda5
Java For MacOSX 10.6 Update 3 http://support.apple.com/downloads/DL1360/en_US/JavaForMacOSX10.6Update4.dmg sha1:513d5c5b62fb1257b8bf582c1c11e02e944fa808
AirPort Utility 5.5.2 http://support.apple.com/downloads/DL955/en_US/AirPortUtility552.dmg sha1:d687889612acbd01450dee1517de88ea963011a6
Remote Desktop Client 3.4 http://support.apple.com/downloads/DL1350/en_US/RemoteDesktopClient.dmg sha1:46df7a3b31cd2b51213e1a6fd193d5073c004771
**Macbook Air update http://support.apple.com/downloads/DL1370/en_US/MacOSXUpd10.6.7Supp.dmg sha1:69ee7eec2b608199ffc215cc56e1a999b958397f**
So, to add an update manually, you simply go to Apple's support download section, pick the update you want and click on the link to get the full description, for example purposes I will use this update:
http://support.apple.com/kb/DL1459
Now, you will want to right click on the download button on the web page and copy the link location, which results in this full URL:
http://support.apple.com/downloads/DL1459/en_US/MacOSXUpdCombo10.7.2.dmg
If you look further down the web page you will see the secure hash algorithm (SHA) listed as:
SHA1= accd06d610af57df24f62ce7af261395944620eb
To put it all together you need to add it to your catalog file in this format. THIS IS VERY IMPORTANT YOU DO THIS PROPERLY! This is due to Python's nature of how it treats spaces versus tabs. Python syntax is very dependent on this, so you must follow this format:
name the update (tab) full URL (tab) sha1:long_string_of_characters
Every time you see (tab) you need to hit tab instead of the space bar. This is how the instaUp2date.py script will parse the data. Now after you have added everything you need, you just run the up2date script.
Then look at your output files and you have your image, which you can then drop into Casper Admin and compile with all your packages. Create tons of different configurations and such to your liking.
I hope this was informative and helps some of you struggling to grasp InstaDMG. I personally love it for base image creation and that is all I use it for. I don't use it to add in packages or anything like that, I use Casper Admin for that.
-Tom