November 15, 2008
Operating System |
Platform |
Application(s) |
Other |
|
|
|
N / A |
This document describes the process of configuring a Sun Solaris 10 (SPARC) JumpStart server. I will also provide an example JumpStart profile that will install a stripped down GNU GCC development / server environment.
I always include a development foundation when installing Solaris because Sun's package and patching systems are disgusting. Therefore, most of my work is done using source code for application installation. I also use Martin Paul's excellent patching software, PCA, for all updating needs.
Test Platform:
- Sun 420R
- 4x 450Mhz UltraSPARC-II / 4GB RAM
- Solaris 10 OE 05/08
Keep in mind that this document does not cover hardening the system. That process is outlined in other documents from myself or others, and is very specific to the intended purpose of the machine.
This guide assumes you already have Solaris 10 installed on what will now be your JumpStart server.
First, download the Sun Solaris 10 (SPARC) installation DVD bits from sun.com. Then, copy it to your soon-to-be JumpStart server.
You will need to have root access to perform the following functions. On my system, I created a disk partition named /jumpstart. Most people stick it in /export. Here, we'll do it my way (assume a separate /jumpstart slice). Also, my OS ISO file was saved to my user directory, /export/home/randy.
# cd /jumpstart
# mkdir /mnt/temp
# lofiadm -a /export/home/randy/sol-10-u5-ga-sparc-dvd.iso
# mount -F hsfs /dev/lofi/1 /mnt/temp |
Now that we have that out of the way, it is time to create our source directory and run the installation script:
# mkdir /jumpstart/solaris_10_js
# /mnt/temp/Solaris_10/Tools/setup_install_server /jumpstart/solaris_10_js |
This will copy all necessary installation files to the server. Once finished this part, you can unmount and delete the ISO file. Once finished, we can create the configuration files for our automated installations:
# mkdir /jumpstart/solaris_10_js/config
# cd /jumpstart/solaris_10_js/config
# vi
sysidcfg |
The sysidcfg file contains information for setting system locales, timezone, IP information, and much more. Here is the one I use - it is simple so I can use the same one for many installations:
system_locale=en_US.UTF-8
timezone=US/Eastern
timeserver=time.nist.gov
terminal=vt100
name_service=DNS {domain_name=procyonlabs.com
name_server=192.168.1.1}
security_policy=NONE
root_password=<encrypted_pw_for_root_on_new_installations>
|
Next, we need to create a rules file:
This file contains a "rule" for each client or group of clients. Again, I keep it simple (one line for each system you plan on installing):
hostname uranus - profile -
hostname atlas - profile -
hostname ganymede - profile -
hostname jupiter - profile -
|
Now for the fun part:
The profile file contains all the details for clusters, packages, drive partitioning, etc for your target systems. Because for every system I install, I require a minimal package set without X, and a GNU development environment, this is what I have in my file:
# CORE Installation w/ Development Libraries
#
# Customized for the Web Server with Apache 2, PHP 5, OpenSSL
# and Database Support guide:
#
# http://www.procyonlabs.com/guides/solaris/saps_db
#
# base config ##
install_type initial_install
system_type standalone
## filesystem ##
partitioning explicit
filesys c0t0d0s0 6000 /
filesys c0t0d0s1 free /var
filesys c0t0d0s3 1024 swap
filesys c0t0d0s7 4000 /export/home
## primary cluster ##
cluster SUNWCreq
## clusters to add ##
cluster SUNWCfwutil add # Freeware Other Utilities
cluster SUNWCfwshl add # Freeware Shells
cluster SUNWCwget add # GNU wget
cluster SUNWCntp add # Network Time Protocol
cluster SUNWCptoo add # Programming tools and libraries
cluster SUNWCssh add # Secure Shell
## packages to add ##
package SUNWgzip add # gzip - because the compression cluster don't work
package SUNWzip add # zip
package SUNWarc add # Lint Libraries (usr)
package SUNWarcr add # Lint Libraries (root)
package SUNWman add # On-Line Manual Pages
package SUNWdoc add # Documentation Tools
package SUNWsfwhea add # Open Source header files
package SUNWtoo add # Programming Tools
package SUNWhea add # SunOS Header Files
package SUNWxcu4 add # XCU4 Utilities
package SUNWxcu4t add # XCU4 make and sccs utilities
package SUNWxcu6 add # XCU6 Utilities
package SUNWgcmn add # gcmn - Common GNU package
package SUNWggrp add # ggrep - GNU grep utilities
package SUNWgtar add # gtar - GNU tar
package SUNWopensslr add # OpenSSL (Root)
package SUNWopenssl-commands add # OpenSSL Commands (Usr)
package SUNWopenssl-include add # OpenSSL Header Files
package SUNWuiu8 add # Iconv modules for UTF-8 Locale
package SUNWuium add # ICONV Manual pages for UTF-8 Locale
package SUNWulcf add # UTF-8 Locale Environment Common Files
package SUNWladm add # Locale Administrator (really optional)
## GNU Environment ##
package SUNWgcc add # GNU gcc
package SUNWflexlex add # The Flex Lexer
package SUNWbinutils add # GNU binutils
package SUNWgmake add # GNU make
package SUNWbison add # GNU bison - A YACC Replacement
package SUNWgm4 add # GNU m4 - A macro processor (gm4)
package SUNWgccruntime add # GCC Runtime - Shared libraries used by gcc
package SUNWGlib add # GLIB - Library of useful routines for C programming
## extra stuff needed for PHP/GD ##
package SUNWpng add # PNG - Portable Network Graphics Library
package SUNWpng-devel add # Portable Network Graphics library - developer files
package SUNWjpg add # jpeg - The Independent JPEG Groups JPEG software
package SUNWjpg-devel add # jpeg - The Ind. JPEG Groups JPEG software - dev. files
package SUNWfreetype2 add # FreeType2 Font library
package SUNWxwplt add # X Window System platform software (for libXpm)
package SUNWxwinc add # X Window System include files (for xpm.h)
|
Before we can do anything, we need to validate the rules file:
# cp /jumpstart/solaris_10_js/Solaris_10/Misc/jumpstart_sample/check .
# ./check -r rules -p /jumpstart/solaris_10_js
Validating rules...
Validating profile profile...
The custom JumpStart configuration is ok. |
This creates the rules.ok file. Now, you're OK.
For JumpStart to work, the client systems must be able to see the NFS share containing the OS files:
# echo "share -F nfs -o ro,anon=0 /jumpstart/solaris_10_js" >> /etc/dfs/dfstab
# /etc/init.d/nfs.server restart |
They also need to be able to access the TFTP served tftpboot image(s). For each system you wish to JumpStart, you need to enter a bunch of information using the add_install_client script (located in /jumpstart/solaris_10_js/Solaris_10/Tools):
# echo "CLIENT_HOSTNAME CLIENT_IP" >> /etc/hosts
# /jumpstart/solaris_10_js/Solaris_10/Tools/add_install_client \
-e CLIENT_MAC \
-s JS_HOSTNAME:/jumpstart/solaris_10_js \
-c JS_HOSTNAME:/jumpstart/solaris_10_js/config \
-p JS_HOSTNAME:/jumpstart/solaris_10_js/config \
CLIENT_HOSTNAME sun4u
|
Power on the Sun machine and enter the OpenBoot PROM terminal (stop-a on console, break on other terminals). Enter the following:
More than likely you will see the Timeout waiting for ARP/RARP packet message appear a few times. Eventually it will 'click' and begin the OS installation process.
|