Installationsguide för Solaris 9

Skapa slutskript

Ett slutskript är ett användardefinierat skript i skalet Bourne som anges i filen rules. 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

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

Genom att använda ett slutskript kan du lägga till filer från JumpStart-katalogen i ett redan installerat system. 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.


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

  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
    

Anta exempelvis att du har tillgång till specialprogrammet plats_prog som har tagits fram för att alla på platsen ska kunna använda det. Om du kopierar plats_prog till katalogen JumpStart kopieras plats_prog till systemkatalogen /usr/bin med hjälp av följande rad i slutskriptet:

cp ${SI_CONFIG_DIR}/plats_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.

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


Exempel 24–2 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}1
  cat>${ADMIN_FILE} <<DONT_ASK2
  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} SUNWxyz3 
  umount ${MNT}
  rmdir ${MNT}
  1. Monterar en katalog på en server där paketet som ska installeras lagras.

  2. Skapar den temporära paketadministrationsfilen admin för att förhindra att kommandot pkgadd( 1M) utför kontroller eller ställer frågor när ett paket installeras. Använd den temporära paketadministrationsfilen om du vill lägga till paket automatiskt.

  3. Lägger till paketet genom att använda alternativet -a, som anger paketadministrationsfilen, samt alternativet -R, som anger rotsökvägen.



Exempel 24–3 Lägga till korrigeringsfiler med ett slutskript

 #!/bin/sh 

########
#
# ALTERNATIV SOM ANVÄNDARE KAN KONFIGURERA
#
########

# Sökvägen till korrigeringsfilerna som ska läggas till i systemet när det är installerat.
# Operativsystemsversionen (5.x) och arkitekturen (`mach`) läggs till i
# roten. Det innebär att  /foo på ett 2.6 SPARC-system blir /foo/5.6/sparc
LUPATCHHOST=ins3525-svr
LUPATCHPATHROOT=/export/solaris/patchdb
#########
#
# EFTER DEN HÄR PUNKTEN FINNS INGA ANVÄNDARJÄNSTDELAR
#
#########

BASEDIR=/a

# Ta reda på versionerna för käll- och måloperativsystemen
echo Determining OS revisions...
SRCREV=`uname -r`
echo Source $SRCREV

LUPATCHPATH=$LUPATCHPATHROOT/$SRCREV/`mach`

#
# Lägg till korrigeringsfilerna som behövs
#
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.

Lägg till följande rad i slutskriptet för att skapa slaskfilen /etc/mnttab:

cp /etc/mnttab /a/etc/mnttab

Anpassa rotomgivningen med ett slutskript

Du kan även anpassa filer som redan har installerats på ett system med slutskript. Slutskriptet i Exempel 24–4, till exempel, anpassar rotomgivningen genom att lägga till information i filen .cshrc i rotkatalogen (/).


Exempel 24–4 Anpassa rotomgivningen med ett slutskript

#!/bin/sh
#
# Anpassa rotomgivningen
#
echo "***anpassar /.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 har installerats på ett system startas det 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 24–5.


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

	 #!/bin/sh
	 #
	 #       @(#)set_root_pw 1.4 93/12/23 SMI
	 #
	 # Det här är ett exempel på ett skript i Bourne-skalet som körs efter installationen.
	 # Det ställer in systemets rotlösenord till vad som definieras i PASSWD.
	 # Det krypterade lösenordet hämtas från en befintlig rotlösenordspost
	 # i /etc/shadow på en dator som är igång.
 
	 echo "ställer in lösenordet för rot"
 
	 # ställ in rotlösenordet
 PASSWD=dKO5IBkSF42lw
	 #skapa en temporär indatafil1
 cp /a/etc/shadow /a/etc/shadow.orig2
 
	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )3
           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
 #ta bort den temporära filen
 rm -f /a/etc/shadow.orig4
 # ange flaggan, så att sysidroot inte ber om rotlösenordet
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$5
  mv /tmp/state.$$ ${SI_SYS_STATE}
  1. Ställer in variabeln PASSWD till ett krypterat rotlösenord, som hämtas från en befintlig post i ett systems /etc/shadow-fil.

  2. Skapar en temporär indatafil av /a/etc/shadow.

  3. Ändrar rotposten i filen /etc/shadow för det nyinstallerade systemet med $PASSWD som lösenordsfält.

  4. Tar bort den temporära filen /a/etc/shadow.

  5. Ändrar posten från 0 till 1 i statusfilen, så att användaren inte behöver ange rotlösenordet. Statusfilen går att komma åt via variabeln SI_SYS_STATE , som för närvarande har värdet /a/etc/.sysIDtool.state. Hänvisa alltid till den här filen med hjälp av $SI_SYS_STATE, om du vill undvika problem med dina skript om värdet skulle råka ändras. Kommandot sed som visas här innehåller ett tabulatortecken efter 0 och efter 1.



Obs!  

Om du anger systemets rotlösenord med ett slutskript kan användarna försöka ta reda på det med hjälp av det krypterade lösenordet i slutskriptet. Se till att du är skyddad mot användare som kan tänkas försöka ta reda på rotlösenordet.


Installera programvara som har Web Start-installationsprogram med slutskript

Du kan använda slutskript för att installera ytterligare programvara när Solaris har installerats. Vissa program installeras av Solaris Web Start, som ber dig mata in information under installationen. Om du vill att installationen ska skötas automatiskt kan du köra Solaris Web Start med alternativen -nodisplay eller -noconsole.

Tabell 24–1 Alternativ för Solaris Web Start

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) till installer (1M).