I mostly deal with Mac OS X at my "day job", so I'm a bit platform biased. But I can tell you, as a Cumulus Systems Administrator one of the single most frustrating things to do is a large-scale Desktop Client installation or upgrade. Why is that, you may ask? Well to be perfectly blunt, the InstallAnywhere installer is a piece of garbage; yet another product of misguided cross-platform mediocrity. (OK, that may have been a bit harsh. But, this is my blog and my rules. So there.) Fear not, there is a solution.
Here's why I'm so down on the installer Canto chose. The OS X version is incapable of being deployed to multiple computers remotely. Since I work at a Macintosh centric publishing house, that's pretty much a deal breaker for me. Until I decided to take matters into my own hands. The following details my adventures in creating an Apple Installer Package to be used with Apple Remote Desktop for remote deployment of Cumulus Desktop Client.
How to Build an Apple Package Installer to Remote Deploy Cumulus Desktop Client via Apple Remote Desktop
The information provided in this post is intended for Cumulus System Administrators to ease the pain of deploying the Cumulus Client to groups of OS X computers in an enterprise environment. Using the information below may violate Canto's EULA, as such use and follow with caution.
If you've ever installed an application on a Mac, you're probably familiar with the standard
OS X installer interface. (I'm not talking about the sorry excuse of an installer Adobe uses, nor just dragging an application to your Application Folder from a DMG mounted on your Desktop) No, what I'm talking about are .pkg or Apple Installer Package files. Apple has a free utility called (oddly enough) PackageMaker. It used to be included in the standard
Xcode Developer Tools download, but since it moved to the AppStore, the little extras — including PackageMaker — are in a separate download. While I really wanted to like PackageMaker, when it came to packaging up Cumulus... it didn't fair so well. So I started to look for alternatives.
Why PackageMaker didn't do the trick
Canto has placed a little application in the main Cumulus.app bundle called CumulusTool.app. Ok. So far nothing wonky... except... For reasons unclear, the MacOS and Resources folders of that bundle are actually symbolically linked to the main Cumulus.app's MacOS and Resources folder. Thus, when Package Maker scans a folder for it's contents gets caught up in a vicious circle that ultimately ends up with package maker crashing.
I tried to work around this by physically copying the MacOS and Resources folder into the CumulusTool.app's bundle. It worked, but also doubled the install footprint. It was a hack, but worked.
A Third-Party Alternative
After many attempts to get PackageMaker and Cumulus to play nicely with each other, including leaving the stub of CumulusTool.app and then calling the buildCumulusTool.sh script as a post install action of the Package project, I gave up on PackageMaker all together. Thankfully a little searching on the interwebs brought me to two nifty third-party alternatives. Both are from WhiteBox, and both are freeware.
The first one I tried was Iceberg. It's an older piece of software but still runs under OS X 10.8. It's a no-thrills, utilitarian and somewhat confusing application. That said, it go the job done and I've built working Cumulus install packages with it. However, the second offering from WhiteBox is called simply, Packages and is probably gonna be my go-to for all my package making needs. It's got a ton of options but the really nice thing is the integrated preview of the installer. To be fair, PackageMaker offers a GUI interface editor too, but I like Packages approach better.
Prepare Cumulus Client for Packaging
I would suggest starting with a clean install of Cumulus on the machine you intend to use to make the package. Install it exactly as you want your users to, usually this just means accepting the default installation options: Install path of /Applications and I usually include the server console. But you don't have too.
Next up is add any customizations you need. Extra EJPs, tweaks to client.xml, menu customization, etc. The idea is to get this installation set up exactly as you want your users to see and use.
Build Ye Package!
Ah, the fun part! I'm not going to try to give a huge best practice diatribe on building an installer package. (RTFM for that.) This is a down-and-dirty-get-a-usable-package deal.
When you build a new package you need to decide if you're going to make a Distribution (sometimes called a meta-package) or a Raw Package. If you'd like to have an interactive installer with optional installs or the "full experience" with custom backgrounds and images, choose the Distribution option. Otherwise go with Raw Package.
I've made both. Perhaps for the sake of installing via ARD, the Raw Package project template will be of the most benefit. The majority of the screen shots are for the Distribution option however. (It's just prettier to look at.)
Next, choose a name for your project and a place to save it on your computer. Once you do that, the main interface will open. There are various tabs across the top and it's best to just follow left to right.
Set an identifier appropriate to your organization or situation. Also, you can set a version of your package. I would advise leave the default "Require admin password for installation" enabled.
Open a Finder window and select the Cumulus Client folder in /Applications. Drag and Drop it into the folder hierarchy, nesting it under Applications. Alternatively, add items to the payload with the plus icon button at the bottom left of the window.
When you do, Packages displays a sheet asking how you'd like to deal with permission and reference. Accept the default options.
Once items are added to the payload you can edit any permissions as required, but it shouldn't be needed.
Next up define any scripts you want run pre or post installation. In a straight forward package to push out the Cumulus Client, you probably won't need too.
Preview and tweak the Installer UI
This part isn't required, but if you've opted to make a distribution you can edit and tweak the UI.
Build your Package!
Now you're ready to build your package. It shouldn't take too long and when you're done it will be saved to the build folder inside your project folder. It's time to give it a test run!
Remote Installation via Apple Remote Desktop
Now for the prize. The whole point of the post, and an answer to my prayers as a Cumulus Systems Admin: Remote Installation with Apple Remote Desktop.
Make sure you've added all the computers you want to manage and have done so with an administrator's log-in credentials for each remote machine.