Wednesday, May 20, 2009

Solaris Jumpstart Automated Installation

Abstract

This is an introduction to custom automated installation in a Solaris environment. It is an overview of the necessary systems, services, and configurations needed for easy client integration into existing corporate environments.

What is Jump start?

The Jump start feature is an automatic installation process available in the Solaris operating environment. It allows system administrators to categorize machines on their network and automatically install systems based on the category to which a system belongs.


Reasons to Automate:

  • Simplifies installations
  • Speed - Faster then CD-ROM installation
  • Allows unattended installation
  • Replication - same systems across the enterprise

All Solaris base installations require some basic configuration. With Jumpstart, Sun has enabled the system administrator to avoid repetitive tasks associated with bringing a sun system online.

Prerequisites:

  • A boot server on the same ethernet segment
  • An install server with the Solaris OS
  • A Jumpstart configuration server that defines rules and profiles.

Overview:
  1. Client sends a RARP for its IP
  2. The Boot Server responds via RARPD (in.rarpd) with the IP address in /etc/ethers or the ethers NIS/NIS+ map depending on the ethers setting in /etc/nsswitch.
  3. The client sends a tftp request for a
  4. The server starts in.tftp from inetd and sends the small net kernel
  5. The client then sends out a bootp request
  6. The server responds with the clients entry from /etc/
  7. The client NFS mount it’s root partition from the install
  8. The client then mounts the configuration server (/jumpstart) and runs “sysidtool”.
  9. It then mounts the install image and runs Suninstall to begin the install process.

Boot Server:

The boot server is composed of rarpd (in.rarpd), bootp (in.bootparamd), and tftp (in.tftpd) servers for solaris systems and rplboot for x86 architecture. The Boot server must be on the client’s local network due to the fact that rarp packets will not be forwarded across a router.

Server Files:

  • /etc/ethers = Entry for install clients ethernet address
  • /etc/bootparams = Contains NFS share parameters for installation & configuration
  • /tftpboot = Houses the small net kernel used for bootstrapping
  • /rpldboot = Used in x86 installs (tftp equivalent)

Install Server:

The install server supplies the client with the Solaris OS. It is an NFS share with the Solaris install image. Any OS able to export NFS shares is able to serve as a Jumpstart Install Server.

Configuration Server:

The configuration Sever is comprised of the rules file, profiles, and sysidcfg. It allows the administrator to have available different custom jumpstart configurations based on rule sets. This is very helpful when different groups within an organization require different system configurations.

Rules File:

The rules file is a text file used to create the rules.ok file. The rules file is a look-up table consisting of one or more rules that define matches between system attributes and profiles. For example, the rule
"karch sun4c - basic_prof – " matches a system with a sun4c platform name to the basic_prof profile, which the Solaris installation program would use to install the system.

During a custom Jumpstart installation, the Solaris installation program attempts to match the rules in the rules.ok file in order: first rule through the last rule. A rule match occurs when the system being installed matches any of the values in the rule. As soon as a system matches a rule, the Solaris installation program stops reading the rules.ok file and begins to install the system as defined by the matched rule's profile. This allows a fine grain control over different configuration clusters


Validating the rules file:

Before the profile server is able to function the jumpstart share must have a rules.ok file. The check script validates the rules file and creates the rules.ok file.


Sysidtool Suite:

When you boot Solaris, a set of programs called sysidtool configures your system, prompting for information needed such as the client’s host name and IP address, the local date and time, the time zone and the netmask. NIS or NIS+ can provide this information, otherwise you have to enter it manually before JumpStart can install the OS and packages. It is also possible to create a sysidcfg file, which must be on either local media or a nfs exported filesystem.

The sysidcfg file is a file where, starting with Solaris 2.6, all the configuration information required during an OS installation can be specified. A change needed to be made to the sysidcfg provided as part of the Jumpstart package in order for the process to work on your local network.


Default values needed:
  • date & time
  • time zone
  • site netmask
  • language options

Begin/Finish Scripts:

A begin/finish script is a user-defined Bourne shell script, specified within the rules file, which performs tasks after the Solaris software is installed on the system.

Begin/Finish details:

The Solaris installation program mounts the system's file systems onto /a. The file systems remain mounted on /a until the system reboots. Therefore, you can use the finish script to add, change, or remove files from the newly installed file system hierarchy by modifying the file systems respective to /a. Output from the finish script goes to /var/sadm/finish.log.Finish scripts should be owned by root and have permissions equal to 644.

Configuration Steps:

Server
  1. Create install server(s).
  2. Create a profile server
  3. Create profiles
  4. Create begin and finish scripts
  5. Create and check rules file
Client
  1. Add Client(s)
  2. Boot Client(s)
Server Setup:
  • The first step copies the Solaris CD to the disk. You will need around 450Mb of free space in this directory.
# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /export/Solaris_10
Verifying target directory...

Calculating the required disk space for the Solaris_10 product
Copying the CD image to disk...
Install Server setup complete
#
Note: for Solaris 8 if you would like to include CD 2 (Supplemental), insert CD 2 and run
# cd /cdrom/cdrom0/s0/Solaris_8/Tools
#./add_to_install_server /export/Solaris_2.6
  • Creating a Profile server
#cp -r /cdrom/cdrom0/s2/Solaris_10/Misc/jumpstart_sample/* /jumpstart
#share -F nfs -o ro,anon=0 /jumpstart
#shareall
  • Create profiles (Reference Profiles)
  • Copy profile into /jumpstart directory
  • Create begin and finish scripts (Reference begin/finish scripts) into /jumpstart directory
  • Create and check rules file (Reference Rules)
#cd /jumpstart
#./check
# cd /jumpstart
# ./check
Validating rules...
Validating profile any_machine...
The custom JumpStart configuration is ok.

# cat rules.ok
any - - any_machine -
  • Adding the Install Client
#vi /etc/hosts
127.0.0.1 localhost
127.0.0.2 129.151.29.1 boot_svr loghost
127.0.0.3 129.151.29.10 client_name
  • Add the client information to the server
# cd /jumpstart/Solaris_10/Tools
# ./add_install_client \
-e 8:0:20:7a:22:7e \
-t /jumpstart/Solaris_10/Tools/Boot \
-p server.rainmonkey.org:/jumpstart \
-c server.rainmonkey.org:/jumpstart \
-s server.rainmonkey.org:/export/Solaris_10 \
client.rainmonkey.org \
sun4u

Note: There must be an entry in the /etc/hosts for client.rainmonkey.org and server.rainmonkey.
Client Setup:
  • Booting the Jumpstart Client
At the OpenBoot prompt enter
#reboot "net - install"