Introduction to JumpStart


Published on

These are the slides from a presentation I gave in 1999 at the Seattle Area System Administrators Guild monthly meeting. I haven't done this in a while, so I can't say how much of this is no longer valid, but it may prove useful to someone as a reference.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Introduction to JumpStart

  1. 1. Introduction to Solaris JumpStartBy Scott McDermottscottm@octaldream.com
  2. 2. What is JumpStart? JumpStart is the installation facility for Solaris 2  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. 3. Network Boot Process Boot client from the network  go> boot net - install  New machines will net boot at power on
  4. 4. Client & Boot Server Interaction Client performs RARP request  Server in.rarpd responds with clients IP address IP is determined via /etc/ethers and /etc/hosts  Client uses TFTP to download a client stub  Client requests boot parameters  The servers rpc.bootparamd responds Uses /etc/bootparams  Boot parameters consist of NFS mount points  Client mounts filesystem, boots, runs install scripts
  5. 5. Configuring a JumpStart Server From the Solaris media in Solaris_2.6/Tools  ./setup_install_server <install hierarchy>  Usethe -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. 6. Adding a JumpStart Client Add clients using the add_install_client script  ./add_install_client -e 08:00:20:23:74:95 -i -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. 7. The sysidcfg File Provides automatic system identification  Name server  Network interface  Hostname  root password  Language (locale)  Terminal type  Timezone  Timeserver (not NTP!)
  8. 8. Syntax of the sysidcfg File Keyword Valid Arguments name_service nis, nis+, other, NONE {domain_name=<domain> name_server=<name server IP>} network_interface none, default(2.6), primary(2.7) system_locale Standard locale names install_locale Standard local names timezone Standard timezones timeserver <timeserver hostname or IP>
  9. 9. Example sysidcfg File system_local=en_US install_locale=en_US timezone=US/Pacific network_interface=default{netmask=} name_service=NONE timeserver=localhost
  10. 10. The rules File Selects machines based on a variety of criteria Architecture Memory size NIS domain name Hardware model Disk size Network Hostname Total disk space Installed version of Logical AND/NOT of Solaris any criteria Kernel architecture
  11. 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. 12. Some Rule Matching Examples  any Matches any machine  hostname foobar Matches the host foobar  network && karch sun4c Matches any sun4c on the 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 isnt a SPARCclassic
  13. 13. Server & Install Profile Keywords Keyword Valid Arguments install_type initial_install, upgrade system_type standalone, dataless, server num_clients <# of clients> (5) client_swap <Swap size> (24) client_arch sun4c, sun4d, sun4m, sun4u, sun4u1, tadpole4m (2.6 only), sun4us (64-bit Solaris 7 only)
  14. 14. Disk Profile Keywords Keyword Valid Arguments partitioning default, existing, explicit usedisk <disk device> dontuse <disk device> filesys <device> <size> <fs> <opt params> device any, cntndnsn,, server:path size size, existing, auto, all, free, start:size, ip_address, - (dataless,NFS) fs mount_point, swap (optional) opt params preserve, nosuid, quota, etc...
  15. 15. Package Profile Keywords Keyword Valid Arguments cluster cluster add, delete package package add, delete Example: cluster SUNWCreq add package SUNWsregu delete Listof clusters and packages located on the Solaris media in Solaris_2.x/Product/  .clustertoc  .packagetoc
  16. 16. Main Cluster Groups  SUNWCreq Bare minimum  SUNWCuser Typical user, OpenWindows  SUNWCprog Programming tools  SUNWCall All Sun Microsystems packages  SUNWCXall OEM packages
  17. 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 dont need no steenking Java cluster SUNWCnis delete # We dont run NIS cluster SUNWCpcmc delete # We have no PCMCIA ports
  18. 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. 19. Begin & Finish Scripts Environment variables of note  ${SI_CONFIG_DIR} Points to the directory with your config files  ${SI_PROFILE} The profile thats 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. 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. 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. 22. Documentation  Man pages sysidcfg(4) sysidtool(1M) install_scripts(1M) bootparams(4)  Solaris Advanced Installation Guide at 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