Hands-off jumpstart Installation


Copyright 2002, 2003 Andy Barclay
OpenContent License (OPL)

Setting up hands-off installation using jumpstart with or without NIS+
======================================================================

Setting up the server
---------------------
First, take the installation cdrom out of your media kit and
throw it away ;) We don't need any stinking WEBSTART installation
crap.

0. If you are going to spool the Solaris CDROM to disk, start
it going now, cause it takes a while. Insert the Software 1 of 2
CD into the drive, mount it and run:

/cdrom/Solaris_8/Tools # ./setup_install_server /export/install

Once that is complete, you should add the second software cd in:

/cdrom/Solaris_8/Tools # ./add_to_install_server /export/install

This will require approximately 800 megabytes of disk space in /export/install

ONLY IF YOU ARE USING NIS+
===========================
1. Setup NIS+ as you normally would

2. Put an entry in the timezone NIS+ table for each DOMAIN and its timezone.
Don't bother putting an entry for each individual host
*** DO NOT put a trailing dot on the domain name ***

nexus:/cdrom/solaris_2_5_1_sparc/s0$ niscat timezone.org_dir
doc.kaiperm.org US/Pacific 

3. Create the locale.org_dir file

nexus:/$ nistbladm -D access=og=rmcd,w=r,n=r -c locale_tbl \
name=SI,nogw= locale=,nogw= comment=,nogw= locale.org_dir.dcidoc.kaiperm.org.

NOTE: In the SA 380 manual, it shows two nistbladm commands - use only 
one or the other. Although slightly less secure, use the one giving "r"
access to nobody, that way you don't have to create credentials for the
client to be installed. (at least not before installing the client)
Besides, who cares if everyone can read your timezone table.

4. Add an entry to the locale table for the local domain.
*** DO NOT put a trailing dot on the domain name ***

nexus:/$ niscat locale.org_dir
dcidoc.kaiperm.org C 

===============================================================

ONLY IF YOU ARE NOT USING NIS+
=====================================
Create a directory called /export/config/sysidcfg
Create a directory under here for each OS (at minimum)
mkdir 5.8
cd 5.8
Create a sysidcfg file
--------------------
name_service=NONE
system_locale=en_US
timezone=US/Pacific
timeserver=208.177.135.130
terminal=vt100
network_interface=primary {netmask=255.255.255.248 protocol_ipv6=no}
security_policy=none
root_password="7EUjv0SSA0lHA"
--------------------
=====================================

5. Copy the config dir from the cdrom to disk somewhere

nexus:/cdrom/solaris_8/auto_install_sample# mkdir /export/config
nexus:/cdrom/solaris_8/auto_install_sample# cp -r * /export/config

6. Edit the /export/config/rules file to classify the install clients
Here is a really simple one:

nexus:/export/config# cat rules
any -   -   generic -

7. Create a install description file
Here is a really simple one:

nexus:/export/config# cat generic
install_type    initial_install
system_type     standalone
partitioning    default
cluster         SUNWCall

8. Check the syntax of your rules file (REQUIRED)
nexus:/export/config# ./check

ONLY IF NIS+ BEING USED
========================
9. Update the /etc/nsswitch.conf, keeping in mind that the
add_install_client script updates only the local files:
/etc/ethers
/etc/hosts
/etc/bootparams

Make sure to add entries for timezone and locale.

Here is a sample:
passwd:     files nisplus
group:      files nisplus
hosts:      files nisplus dns
services:   nisplus [NOTFOUND=return] files
networks:   nisplus [NOTFOUND=return] files
protocols:  nisplus [NOTFOUND=return] files
rpc:        nisplus [NOTFOUND=return] files
ethers:     files nisplus
netmasks:   nisplus [NOTFOUND=return] files	
bootparams:	files nisplus
publickey:  nisplus
netgroup:   nisplus
automount:  files nisplus
aliases:    files nisplus
sendmailvars:   files nisplus
timezone:	nisplus
locale:		nisplus
=========================================================

10. Ensure that the config directory and the install directory are shared
on the server

nexus:/cdrom/solaris_2_5_1_sparc/s0$ share
-               /export/boot   ro,anon=0   ""  
-               /export/config   ro,anon=0   ""  
-               /export/patches   ro,anon=0   ""  

Setting up the clients
----------------------

1. Use the host manager from solstice (or admintool on older versions)
to add the client. Make sure you specify client name and ip address and
ethernet address. No need to specify "remote install". 

2. Add entries in all appropriate files for the install client(s) using
the script

NIS+
======
nexus:/export/install$ ./add_install_client -s nexus:/export/install \
-c nexus:/export/config -n aleph:nisplus\(255.255.255.192\) pluto sun4m

In the preceeding line:
-nexus:/export/install is the directory containing the spooled cdrom
-nexus:/export/config is the directory containing the configuration files
-aleph is the nisplus nameserver
-nisplus is the name service in use
-255.255.255.192 is the netmask in use on this subnet
NOTE the backslashes to hide the brackets from the shell
-pluto is the client name
-sun4m is the client architecture type
================================================================

NO NIS+
==========
sudo ./add_install_client -i 208.177.135.133 -e 8:0:20:ca:3f:d7 -c buggs:/export/home/software/jumpstart_config -p buggs:/export/home/software/jumpstart_config/sysidcfg/5.8_HOME blade sun4u
================================================================

*** ENSURE that you substitute for the real client name and architecture type
in the previous lines ***

Here are some sample architecture types
ipc/ipx/sparc 2	sun4c
sparc 5/10			sun4m
ultra 5/10			sun4u
ultra 1/2			sun4u
ultra E-3000/4500	sun4u
E-450/E-250			sun4u

A second Example (from web services)
====================================
kpoldev:/opt/packages/Solaris2.6_05_98/Solaris_2.6/Tools# ./add_install_client \
	-c kpoldev:/opt/config -n kpoldev:nisplus\(255.255.255.0\) pkcweb1 sun4u

NOTE: The "-n" option is only necessary if there is no nisplus server on the
subnet that is local to the client. (Why not use it anyway?)

3. Boot the client

ok boot net - install

Using a finish script with Jumpstart
------------------------------------
1. Replace or add to the /export/config/rules file to specify a finish
script name.

nexus:/export/config# cat rules
any -   -   kaiser kaiser.finish

2. Use the finish script to do anything that would normally be done manually
after the install

nexus:/export/config# cat kaiser.finish
#!/bin/sh
#setup the defaultrouter file
echo "162.119.9.1" >/a/etc/defaultrouter
mount -F nfs 162.119.9.41:/export/patches /mnt
cd /mnt
#AWB apply latest patches to the new machine 
#AWB the AWBpatchinstall is a slight customization of the patchinstall
#script in the root of the sunsolve patch cdrom
#It was customized to avoid displaying the long message at the beginning
#and to add the "-R /a" option to installpatch
#Note: The spacing between the EOTs is significant
./AWBpatchinstall </a/etc/init.d/setndd </a/etc/resolv.conf </tmp/nsswitch.conf
cp /tmp/nsswitch.conf /a/etc/nsswitch.conf

--------------------------------------------
Setting up non-default partitions
--------------------------------------------

Assume you wish to make one swap partition of 128 megs and you wish the
remainder to be the / partition. (lets not argue whether this is a good
idea or not). Also assume that this particular config should only be used
for the server machines in your network and all your servers are on
a single, fddi ring, say subnet 7.

The rules file would look as follows:

#This rule should match the production and development server
#class machines on net 7
network 162.119.7.128 - onebigpartition patchinstall
##WARNING- The "network" directive is broken in Solaris 2.5/2.5.1 jumpstart.
#I have a fix, but it only works if you have copied the CD to disk.

The file "onebigpartition" would look as follows:

install_type    initial_install
system_type     standalone
partitioning    explicit
filesys any 128 swap
filesys any free /
cluster         SUNWCall

After the install, assume you wish to install the recommended cluster of
patches and it is in: aleph:/tools/local/patches/2.5.1_Recommended.
In this case, the file patchinstall would look as follows:

#!/bin/sh
#setup the defaultrouter file
echo "162.119.7.129" >/a/etc/defaultrouter
mount -F nfs 162.119.7.140:/tools/local/patches/ /mnt
cd /mnt
#AWB apply latest patches to the new machine
#AWB the AWBpatchinstall is a slight customization of the patchinstall
#script in the root of the sunsolve patch cdrom
#It was customized to avoid displaying the long message at the beginning
#and to add the "-R /a" option to installpatch
#Note: The spacing between the EOTs is significant
./AWBpatchinstall </a/etc/resolv.conf <
/tmp/nsswitch.conf
cp /tmp/nsswitch.conf /a/etc/nsswitch.conf

-------------------------------------------------