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:
- SSH: ssh lsa-mac-dev1.lsait.lsa.umich.edu , then
cd /Volumes/DataDisk/Install/Group/YourDept. (if you're having trouble SSHing, see the bottom of this page) - AFP: afp://lsa-mac-dev1.lsait.lsa.umich.edu , then mount the share named after your department. Note that you'll eventually have to use ssh to perform some actions, so you might as well just do everything with ssh.
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):
- Name of your load as it should appear in SNI (example: Public Lab Load)
- Where it should be in the ordered list of loads in SNI (example: after my Leopard load)
- The directory unique for this load that will contain installation customizations (example: /Child/public-lab-changes/ )
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):
- choice-additions
- line-additions
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_selected | Is that package 'checked' in SNI? true: package is installed by default false: package is not installed by default |
| start_enabled | Is 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_visible | Should 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 |
| selected | similar 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. |
| enabled | similar 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. |
| visible | similar 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. |
| title | The words that show up next to checkbox in the installer |
| description | The words that show up in the frame at the bottom of the installer when the package is hilited |
| tooltip | Text that will appear near the mouse-pointer when hovering over the checkbox for this package. |
<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:
- Put the new package in your group install directory (/Child/)
- ssh lsa-mac-dev1.lsait.lsa.umich.edu
- cd /Volumes/DataDisk/Install/Group/YourDept
- /usr/local/bin/pkg-dist-info NameOfYourPackage.pkg
% /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-leopardfrom 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:
- lsa-sni-eh.lsa.umich.edu
- lsa-sni-lsa.lsa.umich.edu
- lsa-sni-termstable.lsa.umich.edu (remember - this server only has its packages updated between academic terms, so you may have to use different rules here)
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:- Package is only used by your department and isn't available to others
- Package is an older version than what is available to others
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...