Monday, August 2, 2010

Introduction


This article presents step-by-step procedures for creating a JumpStart server using the Solaris 10 OS for x86/x64 platforms. This version of the Solaris 10 OS is used both for the OS running on the server and for the OS on the JumpStart installation server. Both AMD Opteron and Intel processor-based machines were used as servers and clients with no preference given as to which processor type was used for each.



Instructions are provided to:



Create a JumpStart Installation Server

Create the Client Configuration Files

Share the Installation and Configuration Directories

Create the Client tftpboot Files

Configure and Run the DHCP Server

Perform a Hands-Off JumpStart Installation

Pre-boot Execution Environment (PXE) must be enabled on the clients in order to allow them to boot from the network. On some clients, PXE needs to be enabled in the BIOS.



A bug in the creation of the client boot file is addressed in the Final Clean-Up section.







Solaris JumpStart Procedure

These instructions are for setting up a JumpStart installation server that will install the Solaris 10 OS for x86/x64 platforms on two clients.



In this exercise, the node name of the JumpStart server is stinger2 and its IP address is 172.16.64.194. The default router's IP address is 172.16.64.1. The network address where the JumpStart server resides is 172.16.64.0.



If you need to, you can download the Solaris 10 OS.



1. Create a JumpStart Installation Server



a. Create an installation directory on the server:



# mkdir -p /export/install

b. Put the Solaris 10 OS for x86/x64 platforms DVD in the DVD player on the server. Create the installation server by going to the Solaris_10/Tools directory on the DVD and running the setup_install_server command. The Solaris software is copied to the newly created directory. Specify the absolute path name as the argument.



# cd /cdrom/cdrom0/Solaris_10/Tools

# ./setup_install_server /export/install

Verifying target directory...

Calculating the required disk space for the Solaris_10 product

\
/-\
/-

Calculating space required for the installation boot image

\
/-\
/-

Copying the CD image to disk...

\
/-\
/-

Copying Install Boot Image hierarchy...

\
/-\
/-

Copying /boot x86 netboot hierarchy...

\
/-\
/-

Install Server setup complete

#

c. Verify that the install directory has been populated.



# du -sk /export/install



3083278 /export/install

d. Remove the DVD from the DVD player.



# cd /;eject

Create the Client Configuration Files



The client configuration files are used to control a custom JumpStart installation.



a. Create a configuration directory where the files will reside:



# mkdir /export/config

b. Create the sysidcfg file:



The first file to create is the sysidcfg file. This file must be properly formatted with correct information or the file is ignored and the hands-off JumpStart installation is aborted. The installation then defaults to the standard Solaris interactive installation.



A JumpStart client looks for a file named sysidcfg before the OS installation begins. This file must be named "sysidcfg", so in order to have multiple versions of the file, each sysidcfg file must reside in a separate directory. Each client can have its own sysidcfg file, or multiple clients can use the same sysidcfg file. The sysidcfg file is assigned to a client by the add_install_client command. The following shows the creation of two sysidcfg files:



# cd /export/config

# mkdir sysidcfg1

# cd sysidcfg1

# vi sysidcfg



system_locale=en_US.ISO8859-1

timezone=US/Pacific

timeserver=localhost

terminal=vt100

name_service=NONE

security_policy=NONE

root_password=

network_interface=bge0 {hostname=client1

netmask=255.255.255.0

protocol_ipv6=no

default_route=172.16.64.1}



:wq



# cd ../

# mkdir sysidcfg2

# cd sysidcfg2

# vi sysidcfg



system_locale=en_US.ISO8859-1

timezone=US/Pacific

timeserver=localhost

terminal=vt100

name_service=NONE

security_policy=NONE

root_password=

network_interface=bge0 {hostname=client2

netmask=255.255.255.0

protocol_ipv6=no

default_route=172.16.64.1}



:wq

c. Create the rules file:



The next file to create is the rules file. This is a text file that contains a rule for each client or group of clients on which the Solaris OS will be installed. Each line of the rules file tells JumpStart which begin, profile, and finish files to use for each client or group of clients.



There is only one rules file. It can contain multiple lines depending upon how many unique configurations are needed. The following shows the contents of a rules file that contains information for two separate clients:



# cd /export/config

# vi rules



hostname client1 begin1 profile1 finish1

hostname client2 begin2 profile2 finish2



:wq

The rules file is used by the check script when it creates the rules.ok file. Successful creation of the rules.ok file is required for custom JumpStart installations.



d. Create the begin file:



The begin file is a user-defined Bourne shell script that is used to perform tasks on the client before the installation of the Solaris OS begins. Typical tasks include creating derived profiles and the backing up of files before upgrading.



Multiple begin files can be used if desired. The following shows the creation of two begin files:



# cd /export/config

# vi begin1



#!/bin/sh

echo "Begin Script for JumpStart client1..."



:wq



# vi begin2



#!/bin/sh

echo "Begin Script for JumpStart client2..."



:wq



# chmod 755 begin*

During installation on the client, output from the begin file is written to /tmp/begin.log. After the installation is done, the log file can be found in /var/sadm/system/logs/begin.log.



The Solaris 10 Installation Guide includes a Custom JumpStart Environment Variables section that describes variables you can use in begin scripts.



e. Create the finish file:



The finish file is a user-defined Bourne shell script that is used to perform tasks on the client after the installation of the Solaris OS has completed. This script is typically used to add additional files, add packages and patches, customize the root environment, and install additional software.



Multiple finish files can be used if desired. The following shows the creation of two finish files:



# cd /export/config

# vi finish1



#!/bin/sh

echo "Finish Script for JumpStart client1..."

echo "Get rid of the nfs prompt during the initial boot"

touch /a/etc/.NFS4inst_state.domain



:wq



# vi finish2



#!/bin/sh

echo "Finish Script for JumpStart client2..."

echo "Get rid of the nfs prompt during the initial boot"

touch /a/etc/.NFS4inst_state.domain



:wq



# chmod 755 finish*

The Solaris installation program mounts the client systems' file systems on /a. The finish script can be used to add, change, or remove files with respect to /a. These file systems remain mounted on /a until the initial system reboot.



The JumpStart directory, that is, /export/install, is mounted on the directory that is specified by the SI_CONFIG_DIR variable. The directory is set to /tmp/install_config by default. Files can be copied from the JumpStart directory to the client by commands run in the finish script. Files that are to be added to the installed system are placed in the JumpStart directory and are then accessible by the client.



The following line in the finish script copies a file to the newly installed file system hierarchy on the client:



cp /tmp/install_config/ /a//

f. Create the profile file:



The profile file is a text file that defines how the Solaris OS is installed on a client.



Multiple profile files can be created. Several clients can use the same profile file, or each client can have its own profile file. The following shows the creation of two profile files:



# cd /export/config

# vi profile1



# install_type MUST be first

install_type initial_install



# start with the minimal required number of packages

cluster SUNWCXall

cluster SUNWCapache delete

cluster SUNWCpcmc delete

cluster SUNWCpcmcx delete

cluster SUNWCthai delete

cluster SUNWClp delete

cluster SUNWCnis delete

cluster SUNWCppp delete



# format the entire disk for Solaris

fdisk all solaris all



# define how the disk is partitioned

partitioning explicit

filesys rootdisk.s0 6144 /

filesys rootdisk.s1 1024 swap

filesys rootdisk.s7 free /state/partition1



# install systems as standalone

system_type standalone



# specify patches to install

patch 119281-06 nfs 172.16.64.194:/export/patches



# specify packages to install

package SPROcc add nfs 172.16.64.194:/export/packages



:wq



# vi profile2



# install_type MUST be first

install_type initial_install



# start with the minimal required number of packages

cluster SUNWCXall

cluster SUNWCapache delete

cluster SUNWCpcmc delete

cluster SUNWCpcmcx delete

cluster SUNWCthai delete

cluster SUNWClp delete

cluster SUNWCnis delete

cluster SUNWCppp delete



# format the entire disk for Solaris

fdisk all solaris all



# define how the disk is partitioned

partitioning explicit

filesys rootdisk.s0 6144 /

filesys rootdisk.s1 4096 swap

filesys rootdisk.s7 free /state/partition1



# install systems as standalone

system_type standalone



# specify patches to install

patch 119281-06 nfs 172.16.64.194:/export/patches



# specify packages to install

package SPROcc add nfs 172.16.64.194:/export/packages



:wq

g. Create the check script:



The check script is used to validate that the rules and profile files are correctly set up. First copy the check script to the local directory, that is, /export/config, as shown:



# cd /export/config

# cp /export/install/Solaris_10/Misc/jumpstart_sample/check .

h. Run the check script:



# ./check

Validating rules...

Validating profile profile1...

Validating profile profile2...

The custom JumpStart configuration is ok.

If no errors are found, the rules.ok file is created. This file is the same as the rules file but with its comments and blank lines removed. The check script adds the following comment to the end of the rules.ok file:



# version=2 checksum=

3. Share the Installation and Configuration Directories



a. Modify dfstab to share the JumpStart directories.



b. Edit the /etc/dfs/dfstab file:



# vi /etc/dfs/dfstab



# Place share(1M) commands here for automatic execution

# on entering init state 3.

#

# Issue the command 'svcadm enable network/nfs/server' to

# run the NFS daemon processes and the share commands, after

# adding the very first entry to this file.

#

# share [-F fstype] [ -o options] [-d ""]

# [resource]

# for example,

# 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 /export/config

share -F nfs -o ro,anon=0 /export/patches

share -F nfs -o ro,anon=0 /export/packages



:wq



c. Start the NFS server.



# /etc/init.d/nfs.server start

d. Share the directories.



# shareall

# share

- /export/install ro,anon=0 ""

- /export/config ro,anon=0 ""

- /export/patches ro,anon=0 ""

- /export/packages ro,anon=0 ""

e. Verify file sharing.



# showmount -e localhost

export list for localhost:

/export/install (everyone)

/export/config (everyone)

/export/patches (everyone)

/export/packages (everyone)

4. Create the Client tftpboot Files



a. Run the add_install_client script for each client.



b. Go to the location of the add_install_client script:



# cd /export/install/Solaris_10/Tools

c. Run the add_install_client script for each client on the network that performs a JumpStart installation. Ensure that you use the correct arguments for each client. The -e argument is the MAC address for the client and the -p argument shows the directory name of the sysidcfg file that is used by the client. The following shows running add_install_client for two separate clients:



# ./add_install_client \

-d \

-e 00:0a:e4:37:16:4d \

-s 172.16.64.194:/export/install \

-c 172.16.64.194:/export/config \

-p 172.16.64.194:/export/config/sysidcfg1 i86pc



enabling tftp in /etc/inetd.conf

Converting /etc/inetd.conf

enabling network/tftp/udp6 service

copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1



If not already configured, enable PXE boot by creating

a macro named 01000AE429C1FD with:

Boot server IP (BootSrvA) : 172.16.64.194

Boot file (BootFile) : 01000AE429C1FD



# ./add_install_client \

-d \

-e 00:0a:e4:2a:33:f8 \

-s 172.16.64.194:/export/install \

-c 172.16.64.194:/export/config \

-p 172.16.64.194:/export/config/sysidcfg2 i86pc



enabling tftp in /etc/inetd.conf

Converting /etc/inetd.conf

enabling network/tftp/udp6 service

copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1



If not already configured, enable PXE boot by creating

a macro named 01000AE42A33F8 with:

Boot server IP (BootSrvA) : 172.16.64.194

Boot file (BootFile) : 01000AE42A33F8

The Boot server IP and Boot file values are used later when macros are created while dhcpmgr is running.



5. Configure and Run the DHCP Server



a. Run dhcpmgr:



# /usr/sadm/admin/bin/dhcpmgr

Java Accessibility Bridge for GNOME loaded.

The first screen appears:

(Click on images to enlarge)







b. Select Configure as a DHCP Server and click OK.



The DHCP Configuration Wizard appears:







c. Select Text Files and click Next.







d. Verify the storage path and click Next.







e. Select a nameservice and click Next.







f. Verify the lease information and click Next.







g. Verify the DNS domain information and click Next.







h. Verify the network information and click Next.







i. Select the network type and routing option and click Next.







j. Verify the NIS domain information and click Next.







k. Verify the NIS+ domain information and click Next.







l. Review the settings and click Finish.



The DHCP Manager appears and you are asked to start the Address Wizard:







m. Click Yes.



The Address Wizard appears:







n. Type the number of IP addresses and click Next.







o. Verify the server information and click Next.







p. Verify the IP addresses and click Next.







q. Verify the client configuration information and click Next.







r. Select the lease type and click Next.







s. Review the settings and click Finish.



With dhcpmgr still running, create the BootFile and BootSrvA macros. To access the Create Macros form, first select the Macros tab on the DHCP Manager form. Then select Edit->Create on the top menu.



The Create Macro form appears:







t. Create the BootFile portion of the macro by typing into the Name field the name that was generated by the add_install_client script for the first client. This name is also used in the Option Value field. After typing the information, click Add.







u. Create the BootSrvA portion of the macro by typing the network IP address of the JumpStart server into the Option Value field. After typing the information, click Add. Then click OK to complete the creation of the first macro.



v. Repeat the same process to create the second macro.







x. Click Add.







y. Click Add and then click OK.



z. After generating the second macro, select File->Exit in the DHCP Manager window to end the dhcpmgr utility.



Final Clean-Up



When you ran the add_install_client script, the script created a menu.lst file for each client.



Due to a bug in the creation of the /tftpboot/menu.lst file, you must add the following text after kernel/unix on line 4:



- install dhcp

Therefore, change the file from this:



default=0

timeout=30

title Solaris_10 Jumpstart

kernel /I86PC.Solaris_10-1/multiboot kernel/unix -B \

install_config=172.16.64.194:/export/config, \

sysid_config=172.16.64.194:/export/config/sysidcfg1, \

install_media=172.16.64.194:/export/install, \

install_boot=172.16.64.194:/export/install/boot

module /I86PC.Solaris_10-1/x86.miniroot

to this:



default=0

timeout=4

title Solaris_10 Jumpstart

kernel /I86PC.Solaris_10-1/multiboot kernel/unix - install dhcp -B \

install_config=172.16.64.194:/export/config, \

sysid_config=172.16.64.194:/export/config/sysidcfg1, \

install_media=172.16.64.194:/export/install, \

install_boot=172.16.64.194:/export/install/boot

module /I86PC.Solaris_10-1/x86.miniroot



Perform a Hands-Off JumpStart Installation



Boot the clients.



After the prompt is displayed, press F12 on the client's keyboard.



Network Boot Request....



CLIENT MAC ADDR: 00 0A E4 2A 33 F8 GUID: 11223344 556 7788 99AA \

BBCCDDEEFF00



DHCP....\
/-\
/-

If everything has been set up correctly, the installation runs to completion. If a problem occurs, the installer exits and drops into a shell. The cause of the error is recorded in the install_log file.







Post Installation

The following are the log files for the JumpStart installation:



/var/sadm/system/logs/install_log

begin_log

finish_log

sysidtool.log

No comments:

Post a Comment