Notes
Slide Show
Outline
1
Introduction to Solaris JumpStart
2
What is JumpStart?
  • JumpStart is the installation facility for Solaris 2.x
    • Allows unattended installation based on the application of various rules and scripts
  • What can JumpStart do for me?
    • Simplify Installs
    • Faster than CD installation
    • Allows unattended installation
    • Similar machines need only one configuration rule
3
Network Boot Process
  • Boot client from the network
    • go> boot net - install
    • New machines will net boot at power on
4
Client & Boot Server Interaction
  • Client performs RARP request
    • Server in.rarpd responds with client's IP address
      • IP is determined via /etc/ethers and /etc/hosts
    • Client uses TFTP to download a client stub
    • Client requests boot parameters
    • The server's rpc.bootparamd responds
      • Uses /etc/bootparams
    • Boot parameters consist of NFS mount points
    • Client mounts filesystem, boots, runs install scripts
5
Configuring a JumpStart Server
  • From the Solaris media in Solaris_2.6/Tools
    • ./setup_install_server <install hierarchy>
    • Use the -b switch to do installs from the CD
    • Export the installation hierarchy via NFS
  • From the Solaris media in Solaris_2.6/Misc/jumpstart_sample
    • Copy files to your configurarion hierarchy
    • ie. cp -r * /export/install/js
6
Adding a JumpStart Client
  • Add clients using the add_install_client script
    • ./add_install_client -e 08:00:20:23:74:95 \
      -i 192.168.0.1 -s install:/export/install/Solaris \
      -c install:/export/install/js \
      -p install:/export/install/js foobar sun4u
      • -e MAC address
      • -i IP Address
      • -s Server & path for Solaris media
      • -c Server & path for configuration files
      • -p Server & path to the sysidcfg file
      • Host must be in /etc/hosts
7
The sysidcfg File
  • Provides automatic system identification
    • Name server
    • Network interface
    • Hostname
    • root password
    • Language (locale)
    • Terminal type
    • Timezone
    • Timeserver (not NTP!)
8
Syntax of the sysidcfg File
9
Example sysidcfg File
  • system_local=en_US
  • install_locale=en_US
  • timezone=US/Pacific
  • network_interface=default{netmask=255.255.255.0}
  • name_service=NONE
  • timeserver=localhost
10
The rules File
  • Selects machines based on a variety of criteria
11
rules File Syntax
  • <rule> <begin sh script> <profile> <finish sh script>
    • Example:
      any - defprofile -
      • Matches from the top of the rules file down
        • Takes first match
      • Seperated by whitespace
      • For no script use '-'
      • A profile of '=' uses ${SI_PROFILE}
        • Begin script can generate the profile and save it in ${SI_PROFILE}
12
Some Rule Matching Examples
    • any
      • Matches any machine
    • hostname foobar
      • Matches the host 'foobar'
    • network 192.168.0.0 && karch sun4c
      • Matches any sun4c on the 192.168.0.0 network
    • arch sparc && disksize c0t3d0 400-600 && installed c0t0d0s0 solaris_2.1 && !modal SUNW,SPARCclassic
      • Matches any sparc with a 400-600MB disk that has Solaris 2.1 installed and isn't a SPARCclassic
13
Server & Install Profile Keywords
14
Disk Profile Keywords
15
Package Profile Keywords
  • Example:
    cluster SUNWCreq add
    package SUNWsregu delete
  • List of clusters and packages located on the Solaris media in Solaris_2.x/Product/
    • .clustertoc
    • .packagetoc
16
Main Cluster Groups
    • SUNWCreq
      • Bare minimum
    • SUNWCuser
      • Typical user, OpenWindows
    • SUNWCprog
      • Programming tools
    • SUNWCall
      • All Sun Microsystems packages
    • SUNWCXall
      • OEM packages
17
Sample Host Profile
    • install_type initial_install
    • system_type standalone
    • partitioning explicit
    • filesys rootdisk.s0 100  /
    • filesys rootdisk.s1 512  swap
    • filesys rootdisk.s3 2000 /ftp
    • filesys rootdisk.s4 1000 /opt
    • filesys rootdisk.s5 1000 /var
    • filesys rootdisk.s6 700  /usr
    • filesys rootdisk.s7 free /staff
    • cluster SUNWCprog add    # Developer base
    • package SUNWxwdxm add    # DPS Motif libraries
    • cluster SUNWCkcms delete # Color management bloat
    • package SUNWsregu delete # User registration annoyance
    • cluster SUNWCsea  delete # Evil SNMP stuff
    • package SUNWsutl  add    # Static utils
    • cluster SUNWCacc  add    # Accounting
    • package SUNWsadml add    # Required by Solastice Disk Suite
    • cluster SUNWCjv   delete # We don't need no steenking Java
    • cluster SUNWCnis  delete # We don't run NIS
    • cluster SUNWCpcmc delete # We have no PCMCIA ports
18
rules File Example
  • hostname foobar - prof/foobar set_root_pw
  • Any - prof/any -


    • To install the rules file
      • ./check
        • Creates rules.ok
        • Finds syntax errors
        • Ensures referenced files exist
      • If this is successful, try an install
19
Begin & Finish Scripts
  • Environment variables of note
    • ${SI_CONFIG_DIR}
      • Points to the directory with your config files
    • ${SI_PROFILE}
      • The profile that's being used to configure this machine
      • Good for advanced begin script
      • The default is /tmp/install.input
        • Subject to change without notice
    • The root directory for the machine being installed is mounted on /a.
20
Sample Begin Script
  • #!/bin/sh
  • echo "install_type initial_install"  > ${SI_PROFILE}
  • echo "system_type  standalone"       >> ${SI_PROFILE}
  • echo "partitioning default"          >> ${SI_PROFILE}
  • echo "cluster      SUNWCprog add"    >> ${SI_PROFILE}
  • echo "package      SUNWman   delete" >> ${SI_PROFILE}
  • echo "package      SUNWolman delete" >> ${SI_PROFILE}
  • echo "package      SUNWxwman delete" >> ${SI_PROFILE}
21
Sample Finish Script
  • #!/bin/sh
  • BASE=/a
  • MNT=/a/mnt
  • ADMIN_FILE=/a/tmp/admin


  • mkdir ${MNT}
  • mount -f nfs sherlock:/export/package ${MNT}
  • cat >${ADMIN_FILE} <<DONT_ASK
  • mail=root
  • instance=overwrite
  • partial=nocheck
  • runlevel=nocheck
  • idepend=nocheck
  • rdepend=nocheck
  • space=ask
  • setuid=nocheck
  • conflict=nocheck
  • action=nocheck
  • basedir=default
  • DONT_ASK


  • /usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz
  • umount ${MNT}
  • rmdir ${MNT}
22
Bibliography
    • Man pages
      • sysidcfg(4)
      • sysidtool(1M)
      • install_scripts(1M)
      • bootparams(4)
    • Solaris Advanced Installation Guide at docs.sun.com in the Solaris 2.6 System Administration Collection I and the Solaris 7 Installation Collection
    • Automating Solaris Installations: A Custom Jumpstart Guide by Paul Anthony Kasper and Alan L. McClellan, published by Prentice Hall