So now that you’ve got OS X clients happily chattering away to the CM12 SP1 primary site, what next?
There are a few things we can consider, so in this post I’m going to focus on software deployment – how to get applications for OS X imported into Configuration Manager, and how to get those same applications out and installed onto the client.
A prerequisite is to have at least one OS X client installed and registered with Configuration Manager – read my blog post here on how to achieve this.
Next, we need some software. I’m going to use the latest version of Mozilla Firefox for OS X for this example – you can grab the latest version here.
Step 1 – Repackage the application
Windows doesn’t understand applications designed for OS X, which means that Configuration Manager can’t work with them natively either. They need to be repackaged into a format which CM can work with.
For this, we’ll need an OS X client which has access to the Configuration Manager agent package as well as the application you want to deploy.
In the Tools folder of the Configuration Manager package (the same location as the CMEnroll utility) is a utility called CMAppUtil. This is used for repackaging OS X applications to a custom .CMMAC format which can be imported into the Configuration Manager Software Library.
Here’s a short dump of the help content:
Usage: CMAppUtil -h CMAppUtil -r <filename.cmmac> [-v] CMAppUtil -c <source file> -o <output file> [-a] [-s] [-v]
Description: The CMAppUtil utility enables conversion of application installation files into the cmmac format which is compatible with System Center 2012 Configuration Manager. During the conversion process the CMAppUtil utility detects the parameters required by the Configuration Manager client to determine the application installation state.
The utility supports conversion from .APP, .PKG, .MPKG and .DMG formats.
Our downloaded Firefox executable is a .DMG (Firefox 16.0.2.dmg, to be precise), so the usage will be (from the Tools folder):
sudo ./CMAppUtil -c /Users/james/Desktop/DMGs/Firefox 16.0.2.dmg -o /Users/james/Desktop/cmmac Apps
Note that the filepaths are absolute from root, and that the -o switch to specify the output doesn’t require an output filename as this happens automatically.
Now, copy the resulting .CMMAC file (in this case Firefox.app.cmmac) to a location accessible by the Configuration Manager console.
Step 2 – Import the Application
In the Configuration Manager console, navigate to the Software Library and select Applications. Right-click, select “Create Application”, select “Mac OS X” from the drop-down list and enter the UNC location of the .cmmac file created in Step 1:
Click though the wizard and manually enter the application details – Configuration Manager can’t extract and pre-populate this information as it can with MSI or App-V applications.
Take a look at the Properties of the newly-created Deployment Type and navigate to the “Detection Method” tab. As you can see, Configuration Manager understands enough from the package to create a detection method which will allow the agent to discover whether the application has already been installed, or whether it has been successfully installed. In many ways, this functionality is core to the AppModel in Configuration Manager 2012.
Before deploying the application, distribute the content to an internet-enabled distribution point.
Step 3 – Deploy the Application
Create a new Deployment for the Application. At present, the only supported Deployment to OS X clients are Required to Device Collections:
Next, to trigger a policy refresh on the OS X client, open System Preferences and then the Configuration Manager pane under “Other”, then click “Connect Now”:
The agent will talk back to the Management Point and download the machine policy, at which point the user should be presented with an alert that there is an active deployment:
Click “Install Now” to trigger the deployment immediately. The content will download and the installation will be triggered…
…and the user will be notified once the installation is complete:
Check out the Applications folder and there’s the newly-deployed software 🙂
The client will report back to the site server, and the deployment compliance will be adjusted accordingly, as will software inventory the next time it runs.