JAMF Software's Casper Suite for Imaging
Volume Number: 25
Issue Number: 07
Column Tag: Imaging
JAMF Software's Casper Suite for Imaging
Client Image Deployment and Maintenance - Part 1
by Criss Myers
Background to Image deployment
We have previously looked at some different methods to image network Macs. In particular, Apple's NetInstall and NetBooting. These are great tools, but they rely upon a monolithic image. That is a single, very large image containing the OS, updates, software, settings, etc. One of the many problems associated with this however is the deployment of various different setups within the network. With a single image, each Mac will be identical, which may be fine for some situations, but there are times when it is necessary to deploy different image configurations to different groups of Macs. For example, deploying different applications to different groups of Macs. With a monolithic image the only way to achieve this is with multiple images, which leads to extra work and resources as well as to inconsistencies between the images. There is also the question of keeping the client machines updated and handling the installation of future software. With NetInstall, NetBooting and Bombichs NetRestore it would require a rebuild of the monolithic image and a reimage of the clients.
Fig 1. A monolithic approach to Mac image deployment, each deployment contains the same common software however a separate image has to be created for each. (Image courtesy of JAMF Software)
The Future, a different approach
Today, there is an alternative approach to this procedure, which is becoming more and more popular. Apple themselves seem to be tending towards a method, that revolves around a package-based system. This means creating a very simple OS based image, with as few modifications and tweaks as possible, and then building on top of this with individual packages and scripts. Then different configurations can be made from the same list of source packages with the Base OS being constant between them. Free examples of this approach are InstaDMG and Deploy Studio. Both offer a package based configuration deployment method. A commercial option is also available from a company called JAMF Software and is called The Casper Suite.
Fig 2. A package-based approach, a package is made for each piece of software and then different configurations are created around these common packages. (Image courtesy of JAMF Software)
The Casper Suite
The Casper Suite is a suite of software application tools, together with a web interface to a MySQL database, that offers a package-based imaging system. In addition to imaging, the Casper Suite offers a way to maintain your clients after you have imaged them, this makes the Casper Suite stand out from all other imaging systems, by giving system administrators the ability to maintain their clients. Other features that The Casper Suite offers are, inventory, remote control, license management and settings management. JAMF Software offers a service that is second to none, their phone support as well as their email ticket support is fast and knowledgeable. They listen to their customers and many of the new features that get introduced are though feature requests from their customers.
Fig 3. the various services that the Casper Suite offers. (Image courtesy of JAMF Software)
Pull rather than Push
Most deployment systems work on a Push basis where the server or admin machine pushes out the image to all those that wish to accept it. This is also the case for Apple Remote Desktop / Task Server which can be used to push out software packages to clients. What JAMF Software offers is a forced 'Pull' rather than 'Push' system. Casper Suite uses a pull method where the client connects to the server and pulls the software off it. The client can be instructed via a small ssh connection to mount the file server and pull its software. As Casper supports multiple file servers in different locations, this method scales very well. The client can be contacted by ssh from a central server, but then mount a local file server from which to pull off the software. This naturally helps to optimize performance as well as allow an administrator to initiate the process from any Mac OS X workstation.
The Casper Suite is made up of the following tools:
JSS, JSS Setup Utility, Casper NetInstall Creator, Composer, Casper Admin, Casper Imaging, Casper Remote, Recon, CasperVNC, Casper Mobile and Self Service.
JAMF Software Server - JSS (Tomcat + MYSQL)
The JSS is the central core to the Casper Suite and ties all the other components together. It is essentially a MySQL database with a Tomcat servlet that acts centrally for all the Macs being managed. The clients connect to the JSS to gather their instructions. The JSS enables you to carry out automated tasks to simplify the management of your client Macs. The JSS stores all the data relating to the clients and the deployment content, as well as management instructions. The deployment content itself is stored on what are called Distribution Points. The clients connect to the JSS by ssh and then to the Distribution Points via AFP or SMB. The client initiates the connection rather than the server, therefore no data is broadcast. The client has a jamf.conf file which contains the details of the JSS.
JSS Setup Utility
This is the first thing to setup when installing the JAMF software, the setup utility is used to install and configure the JSS as well as running updates and maintenance.
Launch the JSS Setup Utility, connect to your servers DNS and login with your servers details. You can now install the JSS and setup the AFP Share. Click the install icon and choose the default option to setup the Distribution point, this is the AFP share on the server where you store the packages and scripts. After the JSS is setup the web browser will be launched for you to register the software, enter the activation code and then create the first account that can logon to the JSS.
Once installed you can then configure the JSS. There are 5 sections to the JSS, the main server details section, Database, Web Application, File Sharing and HTTP Downloads.
Fig 4, The JSS Setup Utility, the 5 monitoring sections for each server.
The server section gives you an overview of the server and status of the services. If there is an update available you can install it via the Update pane. Under Automated Maintenance you can setup automated backups, monitor services or restart services when needed, as well as log deletion and distribution point replication.
The Distribution Point is the File Share from which you deploy your OS, Packages and Scripts. You can have as many as you need, the more distribution points you have on different servers then the better load balancing you get. You can also have local distribution points for larger organizations. You will, however, need to synchronize these, and this is done in the JSS Setup Utility via rsync. Your Distribution point can be an AFP or SMB share, so it can run from a windows server as well.
Fig 5. The JSS Setup Utility main monitoring section showing the installed versions and current updates available.
The Database section is used to verify and repair your MySQL database and tables in its Troubleshooting section. Here you can also set the Max Packet Size, by increasing the packet size, you can capture more data when inventorying the computers. The more data you gather about the computers, the larger the size of the data being transmitted. If this is too large, submission of the inventory will fail.
Fig 6. The JSS Setup Utility Database section.
Fig 7. The JSS Setup Utility, changing the Max Packet Size for the MYSQL
The Backup/Restore tab allows you either to create a backup for migration to another server, or to restore the server from an automated backup. Migrating the JSS is relatively easy, just backup the database and then restore that database on the migrated server.
The Web Application section allows you to edit the memory settings for Tomcat, as well as taking advantage of a server's 64-bit mode.
Fig 8. The JSS Setup Utility Web Application section, you can set the memory as well as use the 64-bit mode.
Once the JSS is setup and configured and all ports have been added to the servers firewall (ports 22, 8443, 584, 80, 443 and possibly, 9006, 389, 5999, 139, 445, 25 and 514), the next thing is to access the web interface.
The web interface is accessed either by http or https at your servers DNS address with ports 9006 or 8443 respectively. Login with the first JSS account you set up.
The Web is divided into the following four sections, Inventory, Management, Logs and Admin. Depending on the accounts privileges, you will either see all sections, or those that you have access to.
The Inventory section is where you will access the records that were gathered when inventorying your computers; here you can also edit those records as well as accessing logs for each computer.
The logs section allows you to view the various Casper activities logs as well as receipts logs (see Figure 9 below).
Fig 9. Web interface to the JSS and the Logs section.
The Admin section is where you can setup the various preferences and settings for Casper. Here you setup the accounts that can use the Casper tools as well as their user privileges and what notifications are sent to that user. Casper keeps a full record of all changes that are made by the users. You can also join Casper to your existing Directory database (see Figure 10 below).
Fig 10. the Admin section of the JSS web browser.
The Management section is the key section where you setup the various ways that Casper can manage your Macs (see Figure 11 below).
Fig 10. the Admin section of the JSS web browser.
The main configuration options to focus on at first are:
Admin Section
Setup a few accounts that can use the Casper Software. Give them custom privileges and notifications. (Admin - Accounts)
Join Casper to your existing Directory service if you wish to take advantage of existing users and groups. (Admin - LDAP Servers)
Setup your Inventory options; this is what information is gathered from each computer, such as Hardware, local users, mapped printers, Unix commands, running services, fonts, plugins etc. Do not try and gather too much information at first, before you have decided what information is useful. (Admin - Inventory Options - Inventory Preferences)
You can setup different Buildings / Departments and Network Segments to help you to divide your inventory up into smaller manageable groups. (Admin - Buildings / Departments / Network Segments).
Next setup some general JSS settings, the Activation Code, SMTP settings and the change management to log all users changes. (Admin - General Settings)
Management Section
Next you can setup the management preferences. Here you can choose whether to use startup scripts, login hooks as well as enabling load balancing. (Management - Management Preferences)
Setup any Active Directory bindings that you want automating during imaging. (Management - Active Directory Bindings)
Edit the distribution points; turn off the HTTP section if you do not wish to use it, as this will cause problems installing PKG's. There is a current bug in the system that turns on the HTTP for Distribution Points every time you use the JSS Setup Utility. (Management - Distribution Points)
Casper NetInstall Creator
The last thing to do on the server side is setup the NetBoot deployment. Casper utilizes the NetInstall capabilities of the Mac OS X Server to enable network deployment. You will need to create a NetInstall image and activate it on your server.
Step 1, Create a DMG of an OS installation disk, this can be done using Composer,
Fig 12. Composer 7, creating an OS DMG from an install DVD.
Step 2, Use Casper's NetInstall Creator with the following details:
Fig 13. Casper NetInstall Creator.
Set the "Path to Image source" to the DMG you created.
Give it an Image name and Index, using a high index number for load balancing Netboot servers.
Choose Enable / Default.
Browse to the Casper Imaging App on your Mac, this will then be added to the NetInstall image.
Tick "Create Casper Preference File" and enter the servers DNS.
Click Create
Step 3, Upload and activate on the NetBoot Server.
When you boot your clients from this NetInstall image, it will launch the Casper Imaging App from within the image using the DNS you gave, this will then connect to the JSS to gather imaging details (called Autorun) about this client. If the client is already known to the JSS then the rest of the deployment will be automated.
Conclusion
This concludes the setting up of the server tools and we are now ready to begin adding the clients and deployment content. This will be covered in Part 2. The server required for running the Casper Suite can be as basic as a Mac Mini but to enable large scale deployment of a large amount of Data then an Xserve would be recommended. For Larger networks then Mac Mini's could be used as additional Distribution Points in various locations across the network, these would then help to deliver content more quickly than from one central location.