I don't muck with JumpStart as often as I have in the past. It seems every time that I need to build a new JumpStart server, I spend an hour or two trying to dig up my notes and figure everything out again. In order to save a few future brain cells, I put together this basic crib sheet as a personal reference for one way to setup a basic Solaris JumpStart server using the JumpStart Enterprise Toolkit (a.k.a. jet). Not covered here but also a great complement to JET is the Solaris Security Toolkit. The Solaris Security Toolkit is formerly known as the JumpStart Architecture and Security Scripts (a.k.a. jass).
Lets get started. Here is the outline for setting up a basic JumpStart server using jet.
- Find suitable server with sufficient memory and storage.
- If installing, install the server with the latest and greatest version of Solaris and apply latest updates. Also, be sure disable all remote services but ssh.
- If using an existing server, be sure it is running a recent version of Solaris with the latest patches.
- If necessary, delete the default export and export/home zfs filesystems and then create ZPool that will contain everything pertaining to the JumpStart server.
zfs destroy -r export
zpool create export raidz c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0
mkdir -p /export/install/pkgs /export/install/patches /export/install/media /export/bin /export/bits
Notes:
* I like to keep all iso images and various software in /export/bits.
* I like to keep all my custom scripts in /export/bin.
- Download and Install the JET
pkgadd -d ./SUNWjet.pkg SUNWjet - Add /opt/SUNWjet/bin to the path of the root user
PATH=$PATH:/opt/SUNWjet/bin; export PATH
- Install Solaris install media
copy_solaris_media [-d target-dir] [-n osname] mediadir
copy_solaris_media [-d target-dir] [-n osname] -i
For Example:
copy_solaris_media -d /export/install/media/S10_2009_06_i86pc -n s10_2009_06_i86pc -i /export/bits sol-10-u8-ga-x86-dvd.iso
- make sure that all jumpstart client hostname resolution is either in DNS or in the /etc/hosts file of the JumpStart server in the form of: IP FQDN HostName. For example:
10.10.0.20 server1.example.com server1
- If you plan to jumpstart x64 servers, you will need to setup a DHCP server. Do this with the following steps:
- Set JS_DHCP_VENDOR="i86pc" in /opt/SUNWjet/etc/jumpstart.conf
- cp /opt/SUNWjet/Products/base_config/solaris/make_dhcp /export/bin/setup_dhcp
- Edit /export/setup_dhcp and set the appropriate values for the following variables:
NETWORK=
NETMASK=
ROUTER= - Set execution permissions on the script: chmod 700 /export/setup_dhcp
- Run the DHCP setup script: /export/bin/setup_dhcp
- Make a JumpStart client template:
/opt/SUNWjet/bin/make_template server1
- Edit the new template and configure to your liking.
# vi /opt/SUNWjet/Templates/server1
Minimum variables for an x64 server include the following:
base_config_ClientArch=i86pc
base_config_ClientEther=00:08:1c:63:12:e9
base_config_ClientOS=s10_2009_06_i86pc
base_config_client_allocation="dhcp"
Optional variables that I often configure.
base_config_x86_safetoreboot="yes" # If PXE boot is one time event.
base_config_profile_cluster=SUNWCall # I prefer to install everything.
base_config_nodename="server1" # The nodename is often different than the jumpstart hostname.
base_config_defaultrouter="192.168.44.1"
base_config_notrouter="true"
base_config_dns_domain="thezonemanager.com"
base_config_dns_nameservers="151.164.1.8 151.164.11.201"
base_config_networkifs="e1000g0 e1000g1"
base_config_networkif_e1000g0="admin 255.255.255.0 server1z 10.10.0.41"
base_config_networkif_e1000g1="public 255.255.255.0 server1 192.168.44.41"
- Configure the build environment for this client. May need to use -F if updating the client.
# make_client server1
- Start the JumpStart build of the client.
For Sparc: ok boot net - install
For x86/64: Force a PXE boot (Often just hitting F12 on the keyboard of the client during boot)
make_template -T server1 server2
Once you have the basic JumpStart working, you can then add your own custom files and scripts and placing them in /opt/SUNWjet/Clients/common.files of the JumpStart server. You can use variables like custom_scripts_1, custom_scripts_m, and custom_scripts_n within the JET template file to specify what scripts and when to run them.
Enjoy!
Brad