Jumpstarting a Client System

Print

Written by Greg King Monday, 24 September 2012 18:50

DISCLAIMER! This document is nothing more than the musings of the author as he attempts to perform the stated tasks.  Conclusions and approaches
may very well be incorrect, inefficient, or otherwise outside of professionally accepted best practices. Use this document at your own risk! In this
document, screen outputs will be presented in green. Where keyboard input is required, the prompt will be in bolded red. # means you should be at the
super user prompt, $ means you should be at an
unprivileged
user prompt. Do not include these prompts in your input! The command to be typed will be
shown in blue.
# ls -al
means you type ls -al at the super user prompt.
Creating your first jumpstart client can be a intimidating because it is a little tedious to set up.  However, once you have done it a few times, it is actually pretty simple.  Take a deep breath, and lets jump in to Jumpstarting!

To jumpstart a client, you will need the following things
  1. A jumpstart server properly configured for the platform we are jumping
  2. A flar image for the platform and architecture we are using as installing image.
  3. The Ethernet (aka MAC address) of the target system (use the BANNER command at the OK promt)
In this document, the Jumpstart Server is 14ADM.  The Target System is 15ADM and has a mac address of 0:3:ba:5b:6e:82

To begin, navigate to the MISC/jumpstart_sample directory in your /export/jumpstart/ tree for your platform and recursively copy all of the files to your /export/config directory

# cd /jumpstart/sparc/Solaris_10/Misc/jumpstart_sample
# cp -r * /jumpstart/config

The default rules file isn't what we want, so we will move it and create a new one.

# cd /jumpstart/config
# mv rules rules.orig


create a new rules file in your favorite text editor and add the following line

hostname 15ADM - class_adm -

and save the file. 

Expected fields are space delimited so fields we are intentionally leaving unused must be included with a dash. The class_adm is a profile file we will create next.  It is useful in that you can jump different types of systems with individual configurations and individual flar images using the rules and profile files.

We just created is a rule for the system hostname of 15ADM with no begin script, using the class_adm profile and no finish script.

Now we will create the class_adm file.  Open it up in your favorite directory and paste in the following

this part needs to be updated when the NAS is online

install_type flash_install
archive_location nfs 192.168.14.15:/flar/20120926_sun4u_basic_patched.flar
partitioning explicit
pool rpool auto 8g 8g any


save the file.  The important parts here are

  1. The install_type flash_install tells it you want to install a flash image.
  2. The archive location is the location of the flar image to push.
  3. partitioning explicit is an unknown feature and may not be needed
  4. pool rpool auto 8g 8g any tells the install program to use that drive, with auto determination of the main partition, 8g swap space, and 8g dump space in a pool called rpool on any hard drive available
We could set the last line to build our zpool mirror for us, but generally I will break the mirror and install the new image.  If it works, I will manually mirror the drives, if not, I can boot into the old image from the other disk.

Now run the check program which will check your rule file and any profiles included in it.


# ./check


if all is ok, you will get an output like this:
Validating rules...
Validating profile class_adm...
The custom JumpStart configuration is ok.


if you look in the /jumpstart/config directory, you will now see a file called rules.ok

Now we will create a directory for our target system and then go there


# mkdir -p /jumpstart/config/15ADM
# cd /jumpstart/config/15ADM


Open an editor for a file named sysidcfg in that directory and paste the following into it.

keyboard=US-English
terminal=vt100
network_interface=bge0 {primary hostname=15ADM
ip_address=192.168.15.15
protocol_ipv6=no
netmask=255.255.255.0
default_route=192.168.15.1
}
security_policy=none
name_service=none
nfs4_domain=dynamic
timezone=US/Pacific
sytem_locale=C
timeserver=192.168.1.101
auto_reg=disable
root_password=******

now save the file and exit the editor

Our sysidcfg states that we want to use the primary interface without IPV6 support, with the netmask and default router as set.  We are not defining a security policy or a NIS+ host (name service).  We are in the PDT time zone, using the POSIX (C) locale.

For the root password, you need to input the encrypted password.  You can copy this out of the /etc/shadow file my selecting the string between the colons right after the root user's name.

for instance,

root:G9paSVAB2dQ1E:6445::::::

See  http://docs.oracle.com/cd/E19253-01/821-0439/6nlg9b3v9/index.html for an explanation of SYSIDCFG

Now, create the ethers file.

Open /etc/ethers and include the following line (you can have more than one system listed)

0:3:ba:5b:6e:82 15ADM

edit /etc/hosts and ensure the target system is included in it, with the ip you wish to assign it!

the last step is to make sure we have boot files setup for the client to boot from.  Navigate to the Tools directory for your platform

# cd /jumpstart/sparc/Solaris_10/Tools

and run the add_install_client with your options

# ./add_install_client -c 14ADM:/jumpstart/config -p 14ADM:/jumpstart/config/15ADM 15ADM sun4u


if all is well, the last line of the output should say

updating /etc/bootparams

We are now ready to boot the target box.  At the ok prompt type 'boot net - install nowin'

in a few seconds, you systems should start the jumpstart process.

You can troubleshoot problems with # snoop -d <your_ethercard ie: bge0> ether <mac of target ie: 0:3:ba:5b:6e:82>

OK, so every time I attempt to install the flar, I get a broken pipe when the flar image begins...

The problem was that the kernel on the flar image was newer than the kernel the mini-root was pushing to the target system.  The solution is to patch the mini-root to the new kernel.  Instructions are HERE!
  Solaris Lab