Guide d'installation Solaris 9

Création de scripts de fin

Un script de fin est un script de shell Bourne, défini par l'utilisateur, que vous spécifiez dans le fichier rules. Un script de fin effectue des tâches une fois le logiciel Solaris installé sur votre système, mais avant que le système ne se réinitialise. Vous ne pouvez utiliser de scripts de fin que si vous installez le logiciel Solaris à l'aide de la méthode JumpStart personnalisée.

Voici les tâches que vous pouvez exécuter à l'aide d'un script de fin :

Informations importantes à propos des scripts de fin

Pour ajouter des fichiers à l'aide d'un script de fin

Un script de fin vous permet d'ajouter des fichiers du répertoire JumpStart sur un système déjà installé. Vous pouvez ajouter des fichiers, car le répertoire JumpStart est monté sur le répertoire spécifié par la variable SI_CONFIG_DIR. Le répertoire par défaut est /tmp/install_config.


Remarque :

vous pouvez également remplacer des fichiers en les copiant du répertoire JumpStart sur des fichiers existants du système installé.


  1. Copiez dans le répertoire JumpStart tous les fichiers que vous souhaitez ajouter sur le système installé.

  2. Insérez la ligne suivante dans le script de fin de chaque fichier que vous souhaitez copier dans la nouvelle hiérarchie des systèmes de fichiers installés :

    cp ${SI_CONFIG_DIR}/nom_fichier /a/nom_chemin
    

Imaginez, par exemple, une application spéciale, site_prog, développée pour tous les utilisateurs de votre organisation. Si vous placez une copie de site_prog dans le répertoire JumpStart, la ligne suivante d'un script de fin copie site_prog du répertoire JumpStart dans le répertoire /usr/bin d'un système :

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

Ajout de modules ou de patchs à l'aide d'un script de fin

Vous pouvez créer un script de fin qui procède à l'ajout automatique de modules ou de patchs une fois le logiciel Solaris installé sur un système donné. La procédure d'ajout de modules à l'aide d'un script de fin vous permet de gagner du temps et garantit la cohérence d'installation de modules et de patchs sur les différents systèmes de votre organisation.

Lorsque vous utilisez la commande pkgadd(1M) ou patchadd(1M) dans des scripts de fin, utilisez l'option -R pour définir /a comme chemin d'accès à la racine.

L'Exemple 24–2 illustre un script de fin conçu pour ajouter des modules.


Exemple 24-2 Ajout de modules à l'aide d'un script de fin

  #!/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. Monte un répertoire sur un serveur, dans lequel figure le module que vous souhaitez installer.

  2. Crée un fichier temporaire d'administration des modules, nommé admin, pour éviter que la commande pkgadd(1M) n'effectue des vérifications ou ne vous demande de répondre à des questions en cours d'installation d'un module. Utillisez ce fichier temporaire d'administration des modules pour que l'ajout de modules se fasse sans intervention de votre part.

  3. Ajoute le module à l'aide de l'option -a, qui spécifie le fichier d'administration des modules, et de l'option -R, qui spécifie le chemin d'accès à la racine.



Remarque :

jusqu'à présent, la commande chroot(1M) était associée aux commandes pkgadd et patchadd dans l'environnement des scripts de fin. Il arrive que certains modules ou certain patchs soient incompatibles avec l'option -R. Dans ce cas, vous devez créer un fichier /etc/mnttab fictif dans le chemin d'accès à la racine /a avant d'exécuter la commande chroot.

Pour créer un fichier /etc/mnttab fictif, ajoutez la ligne suivante dans votre script de fin :

cp /etc/mnttab /a/etc/mnttab

Personnalisation de l'environnement superutilisateur à l'aide d'un script de fin

Les scripts de fin peuvent également servir à personnaliser des fichiers déjà installés sur votre système. C'est ainsi que le script de fin de l'Exemple 24–3 personnalise l'environnement superutilisateur en ajoutant des informations dans le fichier .cshrc du répertoire racine (/).


Exemple 24-3 Personnalisation de l'environnement superutilisateur à l'aide d'un script de fin

#!/bin/sh
#
# Customize root's environment
#
echo "***adding customizations in /.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
}

Définition d'un mot de passe superutilisateur à l'aide d'un script de fin

Votre système se réinitialise une fois que le logiciel Solaris est installé. Avant que la procédure d'initialisation ne se termine, le système vous invite à saisir votre mot de passe superutilisateur. Le système ne s'initialisera pas tant que vous n'aurez pas saisi un mot de passe.

Un script de fin nommé set_root_pw figure en exemple dans le répertoire auto_install_sample. Ce script de fin illustre la procédure de définition automatique du mot de passe superutilisateur, sans invite. set_root_pw fait l'objet de l'Exemple 24–4.


Exemple 24-4 Définition du mot de passe superutilisateur d'un système à l'aide d'un script de fin

	 #!/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 file1
 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
 #remove the temporary file
 rm -f /a/etc/shadow.orig4
 # set the flag so sysidroot won't prompt for the root password
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$5
  mv /tmp/state.$$ ${SI_SYS_STATE}
  1. Règle la variable PASSWD sur un mot de passe superutilisateur chiffré, issu d'une entrée existante du fichier /etc/shadow d'un système.

  2. Crée un fichier temporaire de /a/etc/shadow.

  3. Change l'entrée superutilisateur du fichier /etc/shadow du nouveau système installé en utilisant $PASSWD comme champ de mot de passe.

  4. Supprime le fichier temporaire /a/etc/shadow.

  5. Change l'entrée 0 en 1 dans le fichier d'état, de sorte que l'utilisateur n'a pas à entrer son mot de passe superutilisateur. La variable SI_SYS_STATE, dont la valeur actuelle est /a/etc/.sysIDtool.state, donne accès au fichier d'état. Pour éviter de rencontrer des problèmes si cette valeur était modifiée, référencez toujours ce fichier à l'aide de $SI_SYS_STATE. Dans la commande sed illustrée ici, un caractère de tabulation suit la valeur 0 et la valeur 1.



Remarque :

si vous définissez le mot de passe superutilisateur d'un système dans un script de fin, d'autres utilisateurs risquent de tenter de le découvrir à partir du mot de passe crypté dans votre script de fin. Assurez-vous que vous êtes bien protégé contre les tentatives de découverte de votre mot de passe superutilisateur.


Installation de logiciels à l'aide du programme d'installation Web Start et de scripts de fin

Vous pouvez utiliser des scripts de fin pour installer d'autres logiciels lorsque l'environnement d'exploitation Solaris est installé. Certains logiciels sont installés par le programme Solaris Web Start, qui vous invite à saisir des informations en cours d'installation. Pour assurer une installation sans intervention de votre part, vous pouvez exécuter le programme Solaris Web Start tout en sélectionnant l'option -nodisplay ou -noconsole.

Tableau 24-1 Options de Solaris Web Start

Option 

Description 

-nodisplay

Exécute le programme d'installation sans interface graphique utilisateur. Utilisez l'installation par défaut du produit à moins que l'installation n'ait été modifiée par l'option -locales.

-noconsole

Exécute l'installation sans interaction avec une console texte. Cette option est particulièrement utile lorsqu'elle est associée à -nodisplay pour l'exploitation de scripts UNIX.

Pour de plus amples informations, reportez-vous à la page de manuel installer(1M).