Installationshandbok för Solaris 10: Anpassad JumpStart och avancerade installationer

Skapa slutskript

Ett slutskript är ett användardefinierat Bourne-skalskript som du anger i rules-filen. Slutskript utför uppgifter när Solaris har installerats på ett system men innan det startas om. Det går bara att använda slutskript om du använder en anpassad JumpStart-funktion för att installera Solaris.

Du kan bland annat utföra följande uppgifter med ett slutskript:

Viktig information om slutskript

ProcedureSå här lägger du till filer i ett slutskript

Du kan lägga till filer från katalogen JumpStart till ett installerat system med hjälp av ett slutskript. Det är möjligt på grund av att katalogen JumpStart monteras i katalogen som anges i variabeln SI_CONFIG_DIR. Katalogens standardvärde är /tmp/install_config.


Obs! –

Du kan även ersätta filer genom att kopiera filer från katalogen JumpStart och skriva över de befintliga filerna i det installerade systemet.


Steg
  1. Kopiera alla filer som du lägger till i det installerade systemet till katalogen JumpStart.

  2. Infoga följande rad i slutskriptet för alla filer som du vill ska kopieras till den nyinstallerade filsystemhierarkin:

    cp ${SI_CONFIG_DIR}/filnamn/a/sökväg
    

Exempel 7–2 Lägga till en fil med ett slutskript

Anta till exempel att du har ett speciellt program, site_prog, utvecklat för alla användare. Om du kopierar site_prog till katalogen JumpStart så kopieras site_prog till systemkatalogen /usr/bin med hjälp av följande rad i slutskriptet:

cp ${SI_CONFIG_DIR}/site_prog  /a/usr/bin

Lägga till paket eller korrigeringsfiler med ett slutskript

Du kan skriva ett slutskript som automatiskt lägger till paket eller korrigeringsfiler när Solaris har installerats på ett system. Installationen går snabbare om du lägger till paket i ett slutskript, och du ser dessutom till att platsens olika system är konsekvent utformade beträffande paket och korrigeringsfiler.

När du använder kommandona pkgadd(1M) eller patchadd(1M) i slutskript använder du alternativet -R för att ange /a som rotsökväg.


Exempel 7–3 Lägga till paket med ett slutskript

  #!/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}

Följande är beskrivningar av några kommandon för det här exemplet.



Exempel 7–4 Lägga till korrigeringsfiler med ett slutskript

 #!/bin/sh 

########
#
# USER-CONFIGURABLE OPTIONS
#
########

# The location of the patches to add to the system after it's installed.
# The OS rev (5.x) and the architecture (`mach`) will be added to the
# root.  For example, /foo on a 8 SPARC would turn into /foo/5.8/sparc
LUPATCHHOST=ins3525-svr
LUPATCHPATHROOT=/export/solaris/patchdb
#########
#
# NO USER-SERVICEABLE PARTS PAST THIS POINT
#
#########

BASEDIR=/a

# Figure out the source and target OS versions
echo Determining OS revisions...
SRCREV=`uname -r`
echo Source $SRCREV

LUPATCHPATH=$LUPATCHPATHROOT/$SRCREV/`mach`

#
# Add the patches needed
#
echo Adding OS patches
mount $LUPATCHHOST:$LUPATCHPATH /mnt >/dev/null 2>&1
if [ $? = 0 ] ; then
	for patch in `cat /mnt/*Recommended/patch_order` ; do
		(cd /mnt/*Recommended/$patch ; echo yes | patchadd -u -d -R $BASEDIR .)
	done
	cd /tmp
	umount /mnt
else
	echo "No patches found"
if


Obs! –

Tidigare användes kommandot chroot(1M) tillsammans med kommandona pkgadd och patchadd i slutskriptsmiljön. I sällsynta fall går det inte att använda alternativet -R med vissa paket eller korrigeringsfiler. Du måste skapa slaskfilen /etc/mnttab i rotsökvägen /a innan du kör kommandot chroot.

Du skapar slaskfilen /etc/mnttab genom att lägga till följande rad i slutskriptet:

cp /etc/mnttab /a/etc/mnttab

Anpassa rotomgivningen med ett slutskript

Du kan även använda slutskript om du vill anpassa filer som redan är installerade på ett system. Slutskriptet i Exempel 7–5 anpassar rotomgivningen genom att lägga till information i .cshrc-filen i rotkatalogen (/).


Exempel 7–5 Anpassa rotomgivningen med ett slutskript

#!/bin/sh
#
# Anpassa rotomgivningen
#
echo "***lägger till anpassningar i /.cshrc"
test -f a/.cshrc || {
cat >> a/.cshrc <<EOF
set history=100 savehist=200 filec ignoreeof prompt="\$user@`uname -n`> "
alias cp cp -i
alias mv mv -i
alias rm rm -i
alias ls ls -FC
alias h history
alias c clear
unset autologout
EOF
}

Ställa in systemets rotlösenord med ett slutskript

När Solaris-programvaran har installerats på ett system så startas systemet om. Innan startprocessen har körts färdigt uppmanas användaren att ange rotlösenordet. Systemet kan inte avsluta startprocessen förrän någon anger ett lösenord.

Ett slutskript med namnet set_root_pw ligger i katalogen auto_install_sample. Slutskriptet visar hur du ställer in rotlösenordet automatiskt. set_root_pw visas i Exempel 7–6.


Obs! –

Om du ställer in systemets rotlösenord med ett slutskript kan användare försöka ta reda på rotlösenordet via det krypterade lösenordet i ditt slutskript. Se till att du är skyddad mot användare som kan tänkas försöka ta reda på rotlösenordet.



Exempel 7–6 Så här ställer du in systemets rotlösenord med ett slutskript

	 #!/bin/sh
	 #
	 #       @(#)set_root_pw 1.4 93/12/23 SMI
	 #
	 # This is an example Bourne shell script to be run after installation.
	 # It sets the system's root password to the entry defined in PASSWD.
	 # The encrypted password is obtained from an existing root password entry
	 # in /etc/shadow from an installed machine.
 
	 echo "setting password for root"
 
	 # set the root password
 PASSWD=dKO5IBkSF42lw
	 #create a temporary input file
 cp /a/etc/shadow /a/etc/shadow.orig
 
	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )
           printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,passwd,$3,$4,$5,$6,$7,$8,$9
      else
		        printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9
      }' passwd="$PASSWD" /a/etc/shadow.orig > /a/etc/shadow
 #remove the temporary file
 rm -f /a/etc/shadow.orig
 # set the flag so sysidroot won't prompt for the root password
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE} > /tmp/state.$$
  mv /tmp/state.$$ ${SI_SYS_STATE}

Följande är beskrivningar av några kommandon för det här exemplet.


Icke-interaktiva installationer med slutskript

Du kan använda slutskript för att installera ytterligare programvara när Solaris har installerats. Solaris installationsprogram uppmanar dig att ange information under installationen. Om du vill att installationen ska skötas automatiskt kan du köra Solaris installationsprogram med något av alternativen -nodisplay eller -noconsole.

Tabell 7–1 Solaris-installationsalternativ

Alternativ 

Beskrivning 

-nodisplay

Kör installationsprogrammet utan grafiskt gränssnitt. Använder produktens normala installationsinställningar, såvida installationen inte har ändrats med alternativet -locales.

-noconsole

Kör installationen utan att visa ett interaktivt systemfönster. Det är användbart i UNIX-skript i par med alternativet -nodisplay.

Mer information finns i direkthjälpen (man page) till installer(1M).