Deployment Tools & Methods Developed

By: Mikio Moriyasu - Revised: 2006-08-03 devin

Introduction

Tools developed by Student Computing Labs as part of our deployment.


Admin Utility

On our initial setup, Kiosk users would select default Apple Menu options such as "Log Out", "Shut Down", "Restart", and "Sleep". These actions generally caused time delays and confusion for the next user. In addition, when we disabled and made inaccessible certain options like System Preferences, Location sub-menu, or Dock sub menu, patrons familiar with OS X would become confused and then frustrated, making the kiosks less effective and more intimidating.

In an effort to reduce downtime, user confusion, and user frustration with our Kiosks, we customized the Apple Menu using a utility called Fruit Menu. We then created an AppleScript Studio application that allows administrative users access to administrative functions but restricts them from the general kiosk user. Called Admin Utility, the application prompts for a password before allowing access to any administrative options like Log Out, Shut Down, Restart, or Launch Finder.

For information on how we developed, configured, and implemented Admin Utility, please click here (link dead) to visit the dedicated pages on www.macosxlabs.org. You may also download a copy of the application from this site.

"Autorun OS X ASR image" AppleScript

During the early stages of our deployment, we used NetBoot in concert with Apple Software Restore (ASR) to deploy Mac OS X. We began with ASR disk images created using Disk Copy that were stored on a server. Because ASR runs only in Mac OS 9.x, we booted each Mac from a NetBoot disk that has a Mac OS 9 system folder.

To help us streamline and automate this process, we used a task specific AppleScript in the "Startup Items" folder of our NetBoot HD image. This script detected each Mac's IP address, checked to see which disk image group the IP is in, and ran the appropriate ASR image. Without the AppleScript, users would have to manually select which image to run on a machine, or modify ASR's "cput" resource to reflect the values displayed in the ".Properties" parameter in the particular model's Open Firmware (which will not work if you have separate images for the same model of Mac).

For information on how we developed, configured, and implemented this Autorun AppleScript, please click here (link dead) to visit the dedicated "Imaging with ASR and NetBoot" pages on www.macosxlabs.org. You may also download a copy of the application from this site.

ByHost AppleScript

The ByHost folder is used by certain applications and System Preferences during customization, or initial setup. The ".plist" files inside the ByHost Folder are similar to Mac OS 9 preference files, except that they are specific to the machine that created them (their filenames contain the ethernet address as well as hostname).

As a result, when re-imaging other machines, each app that uses these files will have to re-create them (using the defaults, of course). This means any custom preferences you have set up will be lost, and in many cases, the user will have to click "OK" or "Agree" on a series of tedious dialog boxes.

The AppleScript we wrote can be used to rename the ByHost folder files whose file names contain sections that are specific to the master image source. The script can be customized for to suit the needs of any deployment. Please note, however, that the AppleScript does not support long file names and may not work in all instances. As a result, You may be better served by using the original ByHost Renamer Shell Script.

For information on how we developed, configured, and implemented our version of the "ByHost Renamer Shell Script", please click here (link dead) to visit the dedicated pages on www.macosxlabs.org. You may also download a copy of the application from this site.

Idle Script

In our existing OS 9.x environment, lab patrons would frequently use an application then simply close any active windows when they were finished. This left anywhere from two to six applications open and running at the same time. In most instances this caused problems for the next user who would open additional applications and then encounter memory errors, application errors, delays, and crashes.

Patrons would also reset system or application preferences as well as rearrange, hide, or delete items from our standard desktop layout. To eliminate as much as possible the effect of these issues on users, we created an AppleScript Studio application that automatically runs when a machine has been idle for a certain period of time.

Rewritten for OS X, our Idle Script performs the following tasks and problem-solving functions:
  • Restore default preferences for the guest user and display a window preventing users from interfering.
    • Useful for emptying web browser caches, removing cookies and history, etc.
  • Quit applications
    • Quits applications - frees up CPU and memory, and prevents malicious apps (e.g. a key capture utility).
    • Forces applications to use the restored preferences.
  • Ensure that the default app window is always open, making the kiosk easier to use.
  • Ensure that the Finder replacement is always open - a workaround for a login window bug where applications won't auto-launch after being quit 3 times.

For information on how we developed, configured, and implemented Idle Script, please click here  (link dead) to visit the dedicated pages on www.macosxlabs.org. You may also download a copy of the application from this site.