Custom Department Loadsets. Information technology resources and support for LSA faculty, staff, and department system administrators.



accessible view | jump to content | search | jump to site-wide navigation

Custom Department Loadsets

You can customize your department's normal Leopard SNI loadset. You can even create multiple custom loadsets, such as one for laptops, one for desktops, one for lab loads, etc...

First, a little background...
Every department has their own directory on the SNI servers. You can connect to this directory using either of two methods:

This directory (hereafter referred to as /Child/) contains any packages that might be specific to your department, as well as the files used to configure a loadset with your department-specific presets.

Every department already has everything they need to customize their standard 'Leopard' load. If, however, you'd like more customized loadsets, just email lsa-sst-systems@umich.edu and ask for a new custom loadset... Be sure to include the following (Example data included in parens):

To get started, once you're inside your group install directory (/Child/), enter the customizations directory. This is leopard-load-mods for the standard Leopard load, or it's the directory you specified in item 3 above (you'll probably have to make a new folder with that name).

Next, inside that directory, create two plain text files (no extension):

You can use any text editor, such as nano -w filename for those that remember pine. Just remember that the filename is important, and it must not contain any extension (like .txt).


choice-additions

This file is used to change the behavior of an item already available in SNI. To take advantage of it, add a line like this to your choice-additions file:
<choice id="OpenAFS" start_selected="true"/>
There are two main pieces of that line. The first, is the id of that package (id="OpenAFS" in the above example). This id must correspond EXACTLY (include capitalization) to the id used in the master TEMPLATE.dist file. Here is a list of all the IDs for your convenience.

The second part of the example line contains the options (start_selected="true" in the above example). You can use this option, along with others, to determine the behavior of that package in SNI.

start_selectedIs that package 'checked' in SNI?
true: package is installed by default
false: package is not installed by default
start_enabledIs that package greyed out in SNI?
true: package is enabled - user can toggle the checkbox
false: package is disabled - user can't toggle the checkbox.
NOTE: You can still determine, via the start_selected option, if this package will be installed, but the person doing the installation won't be able to change it unless it's enabled.
start_visibleShould the user even see this package?
true:
package is shown
false: package is hidden
NOTE: this does not change whether a package is installed (as defined above) - it only determines whether this item is shown to the user during installation
selectedsimilar to the start_selected, but is evaluated after the user clicks something. This is mostly useful when combined with javascript to make settings change based on the selection of another package.
enabledsimilar to the start_enabled, but is evaluated after the user clicks something. This is mostly useful when combined with javascript to make settings change based on the selection of another package.
visiblesimilar to the start_visible, but is evaluated after the user clicks something. This is mostly useful when combined with javascript to make settings change based on the selection of another package.
titleThe words that show up next to checkbox in the installer
descriptionThe words that show up in the frame at the bottom of the installer when the package is hilited
tooltipText that will appear near the mouse-pointer when hovering over the checkbox for this package.
Here are some examples of a choice-additions that you might use that showcase some of the options. (Each choice should only be on one line - they're word-wrapped here for easier readability):
<choice id="OpenAFS" 
   title="OpenAFS - Access IFS directly" 
   description="OpenAFS client - used to access IFS directly, or other AFS cells 
around the world.  Not recommended for laptops" 
   tooltip="Not recommended for laptops" 
   start_selected="true" 
   start_enabled="true" 
   start_visible="true"/>

<choice id="Maple" 
   description="A math package that we require on every machine" 
   start_selected="true" 
   start_enabled="false"/>

<choice id="AcrobatPro" 
   description="Sorry - you can't install Adobe Acrobat Pro"
   start_selected="false" 
   start_enabled="false"/>

<choice id="HiddenPackage" 
   description="The user will never see this message, but the package 
will always be installed" 
   start_selected="true" 
   selected="true"
   start_visible="false" 
   start_enabled="false"/>
NOTE: You don't have to use ALL of the options. If you don't specify something, it will just use the defaults defined in the TEMPLATE.dist file for the other options. In most cases, you'll probably just want to change the start_selected option.


line-additions

The line additions file is used to add new packages to the list that don't normally appear in the installer. The choice portion of each line must correspond EXACTLY (include capitalization) to the package id used in the master TEMPLATE.dist file, and is the same as the id field used in the choise-additions file. Here is a list of all the IDs for your convenience. NOTE: Most packages are already in the list for installation. You only need to modify this file if you're adding a new package that doesn't already show up in the installer.
<line choice="ldapumich"/>
<line choice="LabHomeDirs"/>
<line choice="AutoHomeDirsUnManaged"/>
<line choice="itdlogin"/>
<line choice="logmeout"/>
<line choice="mailPublicMachines"/>
That will add all of those packages to be available to your loadset, but they will be unselected.

If you're adding your own package that doesn't exist in the default LSA loadset, you'll also need to tell the installer where that package is. To do this you'll need to do the following:

  1. Put the new package in your group install directory (/Child/)
  2. ssh lsa-mac-dev1.lsait.lsa.umich.edu
  3. cd /Volumes/DataDisk/Install/Group/YourDept
  4. /usr/local/bin/pkg-dist-info NameOfYourPackage.pkg
That will print out the bits and pieces that you'll need to paste into your line-additions and choice-additions files. You'll notice that there is a lot more information that also needs to be specified when you're adding a new package, such as the size, authorization, and the path to the package. Here's a sample:
% /usr/local/bin/pkg-dist-info math-common-pkgs/SysDataSender-Math.pkg

<line choice="SysDataSenderMath"/>

<choice id="SysDataSenderMath" title="SysDataSenderMath" 
description="SysDataSenderMath" start_selected="false" start_enabled="true">
    <pkg-ref id="edu.umich.lsa.SysDataSenderMath"/>
</choice>
<pkg-ref id="edu.umich.lsa.SysDataSenderMath" auth="root" 
installKBytes="5">file:/Child/math-common-pkgs/SysDataSender-Math.pkg</pkg-ref>
The first part, (<line choice="SysDataSenderMath"/>) should be pasted into your line-additions file. The rest, including the pkg-ref line, should all be pasted into your choice-additions file.


Lab Packages

A number of packages exist already that are commonly used in labs configurations. Please see the Kerberos / AFS / Lab Package Selector for details on their use. Note that most of the packages are already defined in the master choices file, so you generally only need to add the lines to your line-additions file. It's all detailed in that document.


Automated Account Creation

If your department requires certain accounts to be automatically created on your machines, run
/usr/local/bin/make-account-maker-leopard
from lsa-mac-dev1 to make a package that will automatically create accounts on the target machine. Just run it and follow the instructions on screen. NOTE: You must either create an account in SNI or create an SNI-account-creator package (with make-account-maker-leopard) to prevent the apple setup assistant from launching after the machine reboots.


Syncing your changes

The changes you've made have so far only been on lsa-mac-dev1. You can either make the changes manually on each of the SNI servers, or you can ssh to each of the servers and run this script to synchronize them with lsa-mac-dev1:
/usr/local/bin/dept-replicate dept
(substituting your department's short name for dept.

Remember, you'll need run that command on ALL of the SNI servers:

(assuming you want your customizations available on all of them).


SSH troubles?

By default, nobody is allowed to SSH to the SNI servers. This is just due to tighter default security. If you are unable to SSH to the servers, send lsa-sst-systems@umich.edu an email to get you added to the access list.

NOTE: you must use your UMICH.EDU Kerberos password to SSH.

Don't copy every package to your /Child/ space

The only packages you need to copy to your /Child/ space are those that meet either of the following criteria: If you simply want to change the selection default of a package, the ONLY thing you need to do is add one line (per pkg) to your choice-additions file.


If you have questions about any of this, don't hesitate to ask. If you'd like to know about all the possibilities for things you can put in these files, examine the master installation distribution script found here on any install server: /Volumes/DataDisk/Install/LSA/Packages-Leopard/Apps.mpkg/Contents/TEMPLATE.dist (grep is your friend)

Lastly, this document is a work in progress. If you notice something that should be included in this document, please let me know...

back to top


back to top