| SunSolve Internal |
|
| Infodoc ID | Synopsis | Date | ||
| 16484 | Handsoff Jumpstart using "sysidcfg" with no Nameservice | 14 Jun 2000 |
| Description | Top |
Handsoff Jumpstart using "sysidcfg" with no Nameservice
For Solaris 2.6, Solaris 7, & Solaris 8
(infodoc 16484)
Updated 05/30/00
A) About Jumpstart
What is Jumpstart?
The Jumpstart feature is an automatic installation (auto-install)
process available in the Solaris 2.X operating environment. It allows
system administrators to categorize machines on their network and
automatically install systems based on the category (class) to which
a system belongs.
When should Jumpstart be used?
Use Jumpstart:
* To install new systems on the network.
* To upgrade from one version of Solaris to another.
* To install the Solaris environment on existing systems.
How Jumpstart works.
1) Boot the client across the network.
ok boot net - install (Don't forget spaces around the "-")
The client issues a RARP (reverse address resolution protocol)
request across the network to the boot server in order to
determine its Internet address.
2) The boot server responds to the rarp request via the "rarpd"
daemon (in.rarpd). Using the information in the /etc/ethers file the
server can obtain the IP address of the client and return it back to
the client.
3) The client then gets its bootblock info by way of a TFTP request.
4) On the boot server, the "inetd" daemon listens for and handles
requests. This daemon receives the tftp request and spawns the
in.tftpd daemon to handle this request. The Jumpstart boot image is
sent back to the client.
5) From the client, the Jumpstart boot image issues a hostconfig request
for boot parameters.
6) The boot server returns the information contained in the
/etc/bootparams file to the client.
7) Once the client has its boot parameters, the boot program on the client
mounts the root (/) partition from the boot server and /kernel/unix,
which starts the "init" program (amongst other things). When the boot
server is finished bootstrapping the client, it points the client to
the configuration server.
* Note!! Keep in mind that this example is using a boot server that is
also the install server. If this was a separate install server then
the client would retrieve its boot info from the specified install
server and not the boot server.
8) The client finds the configuration server from info in the bootparams
file. The client mounts the configuration directory and runs
"sysidtool". The client then uses more bootparams information to
locate and mount the install (OS image) directory. The client then runs
Suninstall and installs itself.
* Just A Note About Boot Servers!!!!!!
Normally, The install server provides the boot program for booting
clients. However, under one condition, the Solaris network booting
architecture requires you to set up a separate "boot server". A boot
server is a system with just enough information to boot up a client
over a network. You have to setup a boot server when the install
client is on a different subnet than the install server.
SPARC install clients require a boot server when they exist on
different subnets because the network booting architecture uses the
reverse address resolution protocol (RARP). When a client boots, it
issues a RARP request in order to obtain its IP address. RARP, however
does not aquire the netmask number, which is required to distribute
information across a router on a network. If the install/boot server
exists across a router the boot will fail because the network traffic
cannot be routed correctly without a netmask number.
The result is that you can install a client across a router, but you
cannot boot a client across a router. So you will have to setup a
separate boot server on the same subnet as the client.
B) Setting up Jumpstart. (The following is a sample setup with Solaris 2.6)
The first scenario has a system that is a boot, install, and configuration
server all in one. the client is a sparc 5 system.
Note!!!
Keep in mind that the "\"'s after some of the command lines depict a new
line and are not actual parts to the command syntax.
1) Gather all system and network information.
boot/install/config server name boot_svr
OS image directory /export/install
configuration directory /jumpstart
Client Information
Name sparc5_1
Ethernet address 8:0:20:ab:cd:ef
IP address 129.151.29.10
Architecture sun4x
2) Create the boot/install server.
You will first need to load the OS image from the Solaris 2.6 CD onto
the servers local disk. You will need around 350 MB's of free space in
this directory. (Takes about an hour!)
boot_svr# cd /cdrom/cdrom0/s0/Solaris_2.6/Tools
boot_svr# ls
Boot dial setup_install_server
add_install_client rm_install_client
boot_svr# cd /export
boot_svr# mkdir install
boot_svr# ./setup_install_server /export/install
Verifying target directory...
Calculating the required disk space for the Solaris_2.6 product
Copying the CD image to disk...
Install Server setup complete
boot_svr# cd /export/install/Solaris_2.6
boot_svr# ls
Docs Misc Patches Product Tools
Note: For Solaris 8 use CD 1 of 2, run setup_install_server from:
boot_svr# cd /cdrom/cdrom0/s0/Solaris_8/Tools
boot_svr# ./setup_install_server /export/install
Note: If running "./setup_install_server -b" to setup a boot server only,
you do not need the next step.
After this is complete, use Solaris 8 CD 2 of 2 and do the following:
boot_svr# cd /cdrom/cdrom0/s0/Solaris_8/Tools
boot_svr# ./add_to_install_server /export/install
3) Create the configuration directory on the server.
Now that the install and boot server information is taken care of, you
can set up the configuration portion of it.
Create the directory and copy the necessary files in order to perform
a custom jumpstart installation. You set this up by copying the sample
directory from the OS image directory (/export/install/...) to the
/jumpstart directory.
boot_svr# mkdir /jumpstart
boot_svr# cp -r /export/install/Solaris_2.6/Misc/jumpstart_sample/*
/jumpstart
4) Create a Profile for the system.
This file is used as a template for the custom jumpstart installation.
For this install we're going to use the default profile called
"any_machine". This file can be found in /jumpstart. This can also be
edited to suit your individual needs. Check out chapters 8 & 9 in the
Automating Solaris Installations book (referenced at the end of this
document) for instructions and examples of profiles.
boot_svr# cat /jumpstart/any_machine
install_type initial_install
system_type standalone
partitioning explicit
cluster SUNWCXall
cluster SUNWCxgl delete
package SUNWaudmo add
filesys any 40 swap
filesys any 50 /opt
5) Create the sysidcfg file.
The sysidcfg file is used to automate the system identification
portion of the Solaris install. The following is the one I used
for this installation
boot_svr# vi /jumpstart/sysidcfg
system_locale=en_US
timezone=US/Eastern
timeserver=129.151.29.1 <------ boot_svr's IP address
network_interface=le0 {netmask=255.255.255.0}
terminal=dtterm
name_service=NONE
Note: To use "name_service=NONE" with Solaris 2.6 you will need to load patch
106193-03 or greater.
For Solaris 8 you must use:
network_interface=primary {netmask=255.255.0.0 protocol_ipv6=no}
security_policy=NONE
Note: To use network_interface=primary on Solaris 2.6, you need patch 106193-03
or greater. Solaris 7 and Solaris 8 do not need any patches.NONE
6) Update the Rules file.
The "rules" file is a text file used to create the "rules.ok", and is
probably the most important file for custom jumpstart installations.You
can view this file as a look-up table consisting of one or more rules
that define how install clients are installed, based on their system
attributes.
In this example we used the "any" keyword for the first rule
(machine attributes) and the file "any_machine" for the fourth rule
(profile name) and all others are left blank.
("-" = match always succeeds )
boot_svr# cat /jumpstart/rules
####
####
#
any - - any_machine -
^ ^ ^ ^ ^
| | | | |
| | | | -------------- Finish script
| | | --------------- Profile
| | -------------- Begin script
| ----------- Rule Value (specific system attribute)
----- Rule keyword (general system attributes)
7) Check the rules file.
This is run to validate the rules file. This command creates the rules.ok
file which is required by the installation software to match install
clients to the predetermined rules.
Note!! For this example you should have one line of information in the
rules that is UNcommented. (any - - any_machine -). Delete
any other uncommented lines in this file that don't pertain
to this particular install client before running the check
script.
boot_svr# cd /jumpstart
boot_svr# ./check
Validating rules...
Validating profile any_machine...
The custom JumpStart configuration is ok.
boot_svr# cat rules.ok (check for any unwanted lines!!)
any - - any_machine -
boot_svr#
8) Set up the client to install over the network
After setting up the /jumpstart directory and appropriate files, you use
the "add_install_client" command on the server to setup the client to
install Solaris from the server. You will also have to add the entry for
the client into the "/etc/hosts" file manually.
boot_svr# vi /etc/hosts
#
# Internet host table
#
127.0.0.1 localhost
129.151.29.1 boot_svr loghost
129.151.29.10 client_name <----- Add this line!
~
boot_svr#
The proper syntax for this command is:
# ./add_install_client -e <CLIENT_ETHERNET_ADDRESS>
-s <INSTALL_SERVER>:<OS_IMAGE_DIRECTORY
-c <CONFIG_SERVER>:<CONFIGURATION_DIRECTORY>
-p <CONFIG_SERVER>:<PATH_TO_SYSIDCFG_FILE>
-n [SERVER]:name_service[netmask] (The brackets "[]" are needed!!!)
CLIENT_NAME ARCHITECTURE
boot_svr# cd /export/install/Solaris_2.6/Tools
boot_svr# ls
Boot dial setup_install_server
add_install_client rm_install_client*
boot_svr# ./add_install_client -e 8:0:20:ab:cd:ef
-s boot_svr:/export/install -c boot_svr:/jumpstart \
-p boot_svr:/jumpstart client_name sun4x
Adding "share -F nfs -o ro,anon=0 /export/install" to /etc/dfs/dfstab
making /tftpboot
enabling tftp in /etc/inetd.conf
updating /etc/bootparams
copying inetboot to /tftpboot
boot_svr#
In the "add_install_client" command,
-e Adds the clients info into the "/etc/ethers" file.
-s Specifies the name of Install server (boot_svr) and
path (/export/install/Solaris_2.6/) to the OS image
This option is necessary if the client is being added
to boot server.
-c Specifies the server (boot_svr) and path (/jumpstart)
to locate the configuration files.
-p This specifies the configuration server (boot_svr) and
the path (/jumpstart) to the "sysidcfg" file.
-n This option specifies which name service should be used
during system configuration. This sets the "ns" keyword
in the bootparams(4) file.
name_service Valid entries are "nis",
"nisplus", and "none".
SERVER The name of the server or IP address of the
specified name service. If the server specified
is on a different subnet, then the netmask may be
needed to enable the client to contact the server.
netmask The netmask value specified in /etc/netmasks
boot_svr Is the name of the boot/install/configuration server.
sparc5_1 Is the name of the jumpstart client.
sun4m Is the type of architecture for the client.
9) Check to make sure the proper directories are shared.
You may have to add the configuration (/jumpstart) directory into the
dfstab file. The following example is how the dfstab file should look.
NOTE!!!
If the /jumpstart entry doesn't exist then you will have to
add this line manually and type in "shareall" to enable all the
shared entries.
boot_svr# cd /etc/dfs
boot_svr# more dfstab
# place share(1M) commands here for automatic execution
# on entering init state 3.
#
# share [-F fstype] [ -o options] [-d "<text>"]<pathname>[resource]
# .e.g,
# share -F nfs -o rw=engineering -d "home dirs" /export/home2
share -F nfs -o ro,anon=0 /export/install
share -F nfs -o ro,anon=0 /jumpstart <-- May have to add manually
boot_svr# shareall (to enable the share entries)
boot_svr# dfshares (to verify that they are shared)
RESOURCE SERVER ACCESS TRANSPORT
boot_svr:/export/install boot_svr - -
boot_svr:/jumpstart boot_svr - -
10) Boot the client and install the Solaris software
This is done at the client (client_name).
ok boot net - install
C) A listing of some of the files and directories that are created or changed
on the boot server (boot_svr) during the installation procedure.
boot_svr% cd /tftpboot
boot_svr:
boot_svr% ls -la
total 362
drwxrwxr-x 2 root other 512 Jan 16 13:10 ./
drwxr-xr-x 47 root root 1024 Jan 16 13:10 ../
lrwxrwxrwx 1 root other 28 Jan 16 13:10 81971D0A.SUN4x -> \
inetboot.SUN4M.Solaris_2.6-1*
-rwxr-xr-x 1 root other 171460 Jan 16 13:10 inetboot.SUN4x.Solaris_2.6-1*
-rw-r--r-- 1 root other 301 Jan 16 13:10 rm.129.151.29.10
lrwxrwxrwx 1 root other 1 Jan 16 13:10 tftpboot -> ./
boot_svr% cat /etc/ethers
8:0:20:ab:cd:ef client_name
boot_svr% cat /etc/hosts
127.0.0.1 localhost
129.151.29.1 boot_svr loghost
129.151.29.10 client_name
boot_svr% cat /etc/bootparams
boot_svr boottype=:os
client_name root=boot_svr:/export/install/Solaris_2.6/Tools/Boot \
install=boot_svr:/export/install boottype=:in \
sysid_config=boot_svr:/jumpstart \
install_config=boot_svr:/jumpstart rootopts=:rsize=32768
Note!!!! You may have to add NONE or the particular Name Service at the end of the
bootparams line in order to overcome any problems loading over the network.
boot_svr% cat /etc/dfs/dfstab
# place share(1M) commands here for automatic execution
# on entering init state 3.
#
# share [-F fstype] [ -o options] [-d "<text>"] <pathname> [resource]
# .e.g,
# share -F nfs -o rw=engineering -d "home dirs" /export/home2
share -F nfs -o ro,anon=0 /export/install
share -F nfs -o ro,anon=0 /jumpstart
boot_svr% cat /etc/nsswitch.conf
#
# /etc/nsswitch.nis:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# uses NIS (YP) in conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
# the following two lines obviate the "+" entry in /etc/passwd and /etc/group.
passwd: files nis
group: files nis
# consult /etc "files" only if nis is down.
hosts: files nis
networks: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
ethers: files nis
netmasks: nis [NOTFOUND=return] files
bootparams: files nis
publickey: nis [NOTFOUND=return] files
netgroup: nis
automount: files nis
aliases: files nis
# for efficient getservbyname() avoid nis
services: files nis
sendmailvars: files
boot_svr%
boot_svr% cd /jumpstart
boot_svr% ls -la
total 84
drwxr-xr-x 4 root other 512 Jan 16 12:58 .
drwxr-xr-x 47 root root 1024 Jan 16 13:10 ..
-rw-r--r-- 1 root other 182 Jan 16 08:22 any_machine
-rwxr-xr-x 1 root other 30029 Jan 15 13:34 check
drwxr-xr-x 3 root other 512 Jan 15 13:37 jumpstart_sample
-rw-r--r-- 1 root other 4742 Jan 15 13:34 rules
-rw-r--r-- 1 root other 54 Jan 16 08:22 rules.ok
-rw-r--r-- 1 root other 188 Jan 15 13:36 sysidcfg
boot_svr% cat sysidcfg
system_locale=en_US
timezone=US/Eastern
timeserver=129.151.29.1
network_interface=le0 {netmask=255.255.255.0}
terminal=dtterm
name_service=NONE
boot_svr% cat rules.ok
any - - any_machine -
# version=2 checksum=11112
boot_svr% cat any_machine
install_type initial_install
system_type standalone
partitioning explicit
cluster SUNWCXall
cluster SUNWCxgl delete
package SUNWaudmo add
filesys any 40 swap
filesys any 50 /opt
boot_svr%
D) Some Troubleshooting Hints.
1) ARP/RARP errors while trying to boot up the client.
This Error occurs when you boot an install client over the network,
but the install client can't locate the boot server. This is
usually caused by insufficient or incorrect information in the
hosts and or ethers files. Also the "in.rarpd" daemon may not be
running. Check to make sure /etc/nsswitch.conf file indicates the
correct search path (i.e. ethers files nis). Another daemon
that can cause a client not to boot is "in.tftpd". Make sure this
is running (# ps -ef|grep tftpd). If it's not running then check
the file "/etc/inetd.conf" and make sure the following line is not
commented out: (No # symbol preceding this line)
"tftp dgram udp wait root /usr/sbin/intftpd intftpd -s /tftpboot"
2) le0 or hme0: no carrier errors.
This is caused by the system not being connected to the network or
there is a problem with the network port.
3) RPC: Timed out
This error occurs while trying to boot over the network and
encountering problems with the bootparams file. Check the file
for the proper information and spelling. You may have to end up
removing and re-adding the client with rm_install_client and
add_install_client.
4) Searching for Jumpstart directory...not found
The install client is booting, but it fails to access the
jumpstart directory. This will cause the "Hands Off" install
to go intercative. This can be caused by a couple of things.
An incorrect path name specified in the add_install_client -c
command or the jumpstrat directory isn't shared properly.
5) Custom Jumpstart failing (No Hands Off install or rules.ok problems).
During a custom jumpstart you may be prompted to answer
questions in order to complete the jumpstart. This is a Hands
off install and there shouldn't be any user intervention
at this time. This may be a result of the OS images "netmask"
file not matching the /etc/netmasks file or sysidcfg file.
Example: /etc/netmasks should look like: 129.151.0.0 255.255.255.0
(Your network number will be different.)
(Sol 2.4/2.5 = "cd_image"/export/exec/kvm/"arch_dir"/netmask)
(Solaris 2.6 = "cd_image"/Tools/Boot/netmask)
It should look like this: 255.255.255.0
If you need to do either of the above, you must reboot the boot
server.
6) WARNING: getfile: RPC failed: error 5 (RPC Timed out)
This is usually a result of two or more servers responding
to the same boot request. The install client may attach
itself to the wrong server that contains the wrong information.
Possible areas to look at are the bootparams file (look for the
correct boot server), the /tftpboot directory may have multiple
entries for the same client
E) Other resources to check out.
Reference Manuals
Solaris Advanced Installation Guide (Solaris 2.6)
p/n 802-5740-10
Automating Solaris Installations (A Custom Jumpstart Guide)
isbn 0-13-312505-X
SRDB's/PSD's/Infodocs....
10919 srdb Jumpstart fails to detect rules.ok
10952 srdb Jumpstart does not mount all file systems
12315 srdb Client does not configure hostname.le0 after jumpstart
11972 srdb Jumpstart boots interactive instead using rules.ok file
12195 srdb Jumpstart: Install client boots from wrong server
12018 srdb Jumpstart error:filename is not a valid Solaris 2.x install CDROM
11070 srdb Jumpstart gets stuck in configuring /dev
12019 srdb Jumpstart add_install_client Error:Unknown client "hostname"
12196 srdb jumpstart: install client doesn't boot, install server configured
12022 srdb No network boot server, unable to install the system
12040 srdb Requesting IP address
12171 srdb WARNING: getfile: RPC failed: error 5 (RPC timed out)
6383 srdb autoinstall does not use begin and finish script
11862 srdb System hangs during boot net - install
10247 srdb Autoinstall hands off timezone problems
11070 srdb JumpStart gets stuck in configuring /dev
13498 srdb Jumpstart is going interactive, looking for timezone and NIS/NIS+
nameservice
14733 srdb Hands Off Jumpstart to Solaris 2.5 (and 2.5.1) without using a
naming service.
12112 infodoc Changes in Solaris 2.5
12139 infodoc Solaris 2.5 changes in service setup for clients
12308 infodoc How to (re)install jumpstart image on to disk
12063 infodoc Jumpstart model rules Platform Names and Groups
15834 infodoc How to disable Maint. Update (MU) from jumpstart installation
15744 infodoc Setting up a network interface alias | Applies To | Operating Systems/Solaris/Solaris 2.6 |
| Attachments | (none) |
|
Sun Proprietary/Confidential: Internal Use Only
Feedback to SunSolve Team