The JumpStart Enterprise Toolkit is delivered in standard Solaris 'pkgadd' format. The key package, SUNWjet, contains the basic framework and a module to configure standard Solaris Operating Environment installation tuneables.
The toolkit uses a modular approach for additional functionality, and these modules are delivered as separate packages, all of which are dependant on the main core toolkit package. Every module package can be considered as the glue between the standardised configuration approach found in the toolkit, and the actual product installation scripts. Each module uses tools and utilities provided within the core toolkit to install and configure a particular (un)bundled product, reducing the complexity of the module scripts, and removing most duplication of code.
The toolkit packages do not contain the application binaries for associated products or the required Solaris Operating Environment images. These must still be obtained as usual and copied to the appropriate locations on the JumpStart server. The toolkit provides utilities to assist with this task.
Any machine capable of running the Solaris Operating Environment and which is based on either the SPARC or x86 architecture can be made into a JumpStart server. Although the toolkit itself does not consume any significant amount of disk space, the server must have access to enough local storage to accommodate any O/S images, application packages and patches that will be used for installations.
In a typical install, the following disk requirements were observed; the actual sizes will vary dependant on the modules, operating systems and applications and patches required.
| Filesystem | Observed size | Recommended Free Space |
|---|---|---|
| /opt | 2Mb | 5Mb |
| /export/install | 3Gb | 4Gb or more |
If bootp is being used, the JumpStart server needs to be on the same subnet (without using routers) as the target servers to be built. If using dhcp, this restriction does not apply, but the network infrastructure must provide dhcp forwarding capabilities.
The speed of the network does affect the installation times, but in our experience, the main limiting factor is the updating of the package database on the target server, hence local disk speeds on the individual target server. When using technologies such as Flash, the speed of the network is much more influencial. Anything from 10BaseT to Gigabit has been successfully deployed.
It is recommended that a backup, admin or private JumpStart network be utilised for building the target servers. If this is not available, the user must be aware of the implications on security and network bandwidth of building target servers over a public and/or production network.
The installation of the toolkit can be performed by adding the core toolkit package followed by any additional modules that are required. For this example we will just use the core toolkit.
You will need to be the root user on the JumpStart server to perform this operation.
# pkgadd -d . SUNWjet
The toolkit will be installed in /opt/SUNWjet by default and during the installation of the package, it will automatically share the /opt/SUNWjet directory through NFS, as a read-only filesystem.
Configuring Default Media Paths
The JumpStart Enterprise Toolkit is designed to make the management of associated Solaris and application media as simple as possible. The toolkit uses a simple configuration file (/opt/SUNWjet/etc/jumpstart.conf) to define where Solaris media, application media and patches should be placed. By default these locations are set to subdirectories of /export/install but can be changed by the installer.
| JS_SOLARIS_DIR | Location of Solaris images |
| JS_PKG_DIR | Location of application media |
| JS_PATCH_DIR | Location of Solaris & application patches |
These locations should be reviewed at this point and changed before proceeding further. It is also the responsibility of the installer to ensure that the selected areas are properly NFS exported so that the target servers can access them during the build.
To export the areas, the file /etc/dfs/dfstab should be edited and the NFS server restarted. (Or by setting the sharenfs property if on a zfs based filesystem)
It should be noted that the JS_SOLARIS_DIR setting ONLY affects the behaviour of the "copy_solaris_media" command, by providing a default location for media to be copied to. Media in ANY location on the Jumpstart server can be registered using the "add_solaris_location" command.
Within the configuration file (/opt/SUNWjet/etc/jumpstart.conf) are two other configuration parameters. The first is JS_Default_Root_PW, which should contain the encrypted form of your default root password. Root passwords can be set on an individual target server basis, but when creating a new configuration, this value will be used.
By default the value 'boajrOmU7GFmY' will be present, which translates to 'newroot'.
The other configuration option is JS_BUILD_DIR which identifies a location on the target server that will be used to store configuration information and scripts to be used through the JumpStart process. Once the build has completed, this directory is no longer required and can be deleted. Since it also holds configuration information from the JumpStart server, this may well be considered a security risk and/or a good backup in the case of disaster. By default, an area under /var/opt/sun/jet is used and is left on the machine after the build.
It is NOT recommended to change the value of this variable in current versions of JET. This location is an officially sanctioned location and is used by various Solaris systems management components.
If you intend to use DHCP (required for x86 builds), you need to ensure that the JET DHCP is configured. In the simplest case, the DHCP server and JET server can be the same machine. If this is the case, the DHCP server on the JET server can be configured using the helper script in /opt/SUNWjet/Products/solaris/base_config/make_dhcp
#!/usr/bin/ksh
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
################################################################################
#
# Synopsis: PXE boot pre-JUMP setups
# if DHCP server is notpresent, then activate it
#
# Change the NETWORk details to suit your own
NETWORK=
NETMASK=
ROUTER=
dhcpconfig -D -r SUNWfiles -p /var/tmp
dhcpconfig -N ${NETWORK} -m ${NETMASK} -t ${ROUTER}
#
Add values for your installation network, and set the location of your DHCP files. (the default of /var/tmp isn't particularly sensible. Suggest /var/dhcp). Chmod the file to make it executable, then run it. Once your dhcp server is configured, you can then set the base_config_client_allocation variable to use "dhcp". JET will then automatically populate the dhcp server when make_client is run.
If you should wish to remove the toolkit, simply remove any modules that have been added, followed by the toolkit framework package itself.
# pkgrm SUNWjet
If you have shared out any other media directories, you will need to edit the /etc/dfs/dfstab file by hand and remove the unwanted entries.
The toolkit resides in a single directory, by default /opt/SUNWjet, with each of the main components in sub-directories as follows:
The top level directory contains several files:
The Templates directory contains a template file for each of the target servers to be built by this JumpStart server.
A template file can be created using the make_template script found in the '/opt/SUNWjet/bin' directory, and can be tailored to include the appropriate product configuration options as required.
The Clients directory consists of a set of subdirectories, one named after each target server. On a fresh install, this directory will be empty until the first target server is defined.
The individual target server subdirectory will contain at least the following files:
The Products directory contains a set of sub-directories, one for each product module available for installation. The core toolkit contains two modules called "base_config" and "custom" which contains the Solaris patching, configuration and tuning scripts, along with a mechanism for adding arbtrary packages, patches, files and scripts to a target server.
Each module subdirectory contains at a minimum a single file called "install" and this file will perform all the installation tasks required by the module. The toolkit provides a set of functions that can be called from within this script to perform common tasks such as adding packages, patches, copying files, and specifying post-boot scripts to be run. In essence, the scripts within this directory contain the logic required to install a particular product, with some of the common tasks being performed by a set of toolkit supplied library functions.
If the product installation includes packages to be installed, a package.matrix file is included which contains a list of supported operating systems and product version numbers with a list of the packages required to be installed. There is also a patch.matrix file which will define the required patches in a similar fashion.
Any additional non target server specific files needed for the installation of this product may also reside in this directory.
The Utils directory should be considered the private area of the toolkit. Within this directory are several files and scripts, the more important are briefly described below.
serverlib: This directory contains scripts that run on the JumpStart server itself; it provides some simple functions that are JumpStart server specific.
lib: This directory contains the set of functions which can be used by the finish script and all the module install scripts. This is where all the common utilities actually live.
S99jumpstart: This script is copied onto the target server and is used to run any post installation scripts at subsequent reboots.
begin: a generic begin script which is to extract the profile information for the target server.
finish: a generic finish script which is used to set up the toolkit environment on the target server and then call each of the requested product install scripts in turn.
mediamgmt: this directory contains the methods used to obtain media from the JumpStart server. By default, the target server will use NFS.
The bin directory contains the utility scripts that are intended for the system administrators who are using the toolkit. It can be added to '$PATH' for the root user, but should not be added to the '$PATH' for regular users, since most of the JumpStart scripts require root access to execute.
A brief description of the more important scripts now follows:
The usage of all of these commands can be displayed by running the command with no arguments.