Guide d'installation Solaris 10 : Installation JumpStart personnalisée et installation avancée

Chapitre 7 Utilisation des fonctions facultatives de la méthode JumpStart personnalisée – Tâches

Ce chapitre décrit les fonctions facultatives utilisables pour créer des outils d'installation supplémentaires avec la méthode JumpStart personnalisée.


Remarque –

Les instructions de ce chapitre s'appliquent à un serveur SPARC ou à un serveur x86, utilisé pour fournir des fichiers JumpStart personnalisés, appelé serveur de profils. Un serveur de profils fournit des fichiers JumpStart personnalisés pour divers types de plates-formes. Un serveur SPARC peut, par exemple, délivrer des fichiers JumpStart personnalisés utilisables par des systèmes SPARC et des systèmes x86.


Création de scripts de début

Un script de début est un script Bourne shell que vous définissez dans le fichier rules. Un script de début effectue des tâches précédant l'installation du logiciel Solaris sur un système. Vous ne pouvez utiliser de scripts de début que si vous installez le logiciel Solaris à l'aide de la méthode JumpStart personnalisée.

Utilisez un script de début pour effectuer l'une des tâches suivantes :

Informations importantes à propos des scripts de début

Création de profils dérivés avec un script de début

Un profil dérivé est un profil créé dymaniquement par un script de début au cours d'une installation JumpStart personnalisée. Vous avez besoin de profils dérivés lorsque vous ne pouvez pas configurer le fichier rules de manière à établir le profil de systèmes spécifiques. Vous devrez, par exemple, utiliser des profils dérivés si vous utilisez des systèmes de modèle identique mais équipés de composants matériels distincts, des systèmes qui ne seraient pas équipés de la même mémoire graphique, par exemple.

Pour définir une règle d'utilisation d'un profil dérivé, vous devez effectuer les tâches suivantes :

Lorsqu'un système détecte une règle dans laquelle le champ de profil correspond au signe égal (=), le script de début crée un profil dérivé utilisé pour installer le logiciel Solaris sur le système.

L'exemple ci-après illustre un script de début conçu pour créer systématiquement le même profil dérivé. Vous pouvez également rédiger un script de début conçu pour créer des profils dérivés distincts selon l'évaluation des règles.


Exemple 7–1 Script de début qui crée un profil dérivé

#!/bin/sh
echo "install_type        initial_install"    > ${SI_PROFILE}
echo "system_type         standalone"        >> ${SI_PROFILE}
echo "partitioning        default"           >> ${SI_PROFILE}
echo "cluster             SUNWCprog"         >> ${SI_PROFILE}
echo "package       SUNWman     delete"      >> ${SI_PROFILE}
echo "package       SUNWolman   delete"      >> ${SI_PROFILE}
echo "package       SUNWxwman   delete"      >> ${SI_PROFILE}

Dans l'exemple, le script de début doit utiliser la variable d'environnement SI_PROFILEpour le nom du profil dérivé qui est /tmp/install.input par défaut.



Remarque –

Si vous utilisez un script pour créer un profil dérivé, veillez à ce que le script soit exempt d'erreurs. Le script check ne vérifie pas les profils dérivés, car ces derniers ne sont pas créés tant que le script de début n'est pas exécuté.


Création de scripts de fin

Un script de fin est un script Bourne shell défini par l'utilisateur que vous spécifiez dans le fichier rules. Le logiciel Solaris étant installé sur votre système, un script de fin exécute des tâches 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

ProcedureAjout de 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é.


Étapes
  1. Copiez tous les fichiers, que vous ajoutez au système installé, vers le répertoire JumpStart.

  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}/file_name /a/path_name
    

Exemple 7–2 Ajout d'un fichier à l'aide d'un script de fin

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 vers le répertoire /usr/bin d'un système :

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

Ajout de packages ou de patchs avec un script de fin

Vous pouvez créer un script de fin qui procède à l'ajout automatique de packages ou de patchs lorsque le logiciel Solaris est installé sur un système donné. La procédure d'ajout de packages à l'aide d'un script de fin vous permet de gagner du temps et garantit la cohérence d'installation de packages 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 racine.


Exemple 7–3 Ajout de packages à 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}
  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}

Certaines commandes de cet exemple sont décrites dans ce qui suit.



Exemple 7–4 Ajout de patchs à l'aide d'un script de fin

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


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 packages ou 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 au script de fin :

cp /etc/mnttab /a/etc/mnttab

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

Vous pouvez également utiliser des scripts de fin pour personnaliser des fichiers installés sur un système. Le script de fin de l'Exemple 7–5 personnalise l'environnement root en ajoutant des informations dans le fichier .cshrc du répertoire racine (/).


Exemple 7–5 Personnalisation de l'environnement root à 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

Une fois le logiciel Solaris installé, le système redémarre. Avant que la procédure d'initialisation ne se termine, le système vous invite à saisir votre mot de passe root. Le système ne s'initialisera pas tant que vous n'aurez pas saisi un mot de passe.

Le script de fin set_root_pw est enregistré 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 est indiqué dans Exemple 7–6.


Remarque –

Si vous définissez le mot de passe root avec un script de fin, les utilisateurs peuvent tenter de découvrir le mot de passe depuis le mot de passe chiffré dans le script de fin. Assurez-vous que vous êtes bien protégé contre les tentatives de découverte de votre mot de passe root.



Exemple 7–6 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 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}

Certaines commandes de cet exemple sont décrites dans ce qui suit.


Installations non interactives avec des scripts de fin

Vous pouvez utiliser des scripts de fin pour installer d'autres logiciels, une fois l'installation du système d'exploitation Solaris terminée. Le programme Programme d'installation de Solaris vous invite à saisir des informations durant l'installation. Pour effectuer une installation sans avoir à intervenir, vous pouvez exécuter Programme d'installation de Solaris avec l'option - nodisplay ou -noconsole.

Tableau 7–1 Options d'installation de Solaris

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

Création d'un fichier de configuration compressé

Au lieu d'utiliser la commande add_install_clientpour définir l'emplacement des fichiers de configuration d'installation JumpStart personnalisée, vous pouvez définir l'emplacement des fichiers lorsque vous initialisez le système. Toutefois, vous ne pouvez définir le nom que d'un seul fichier. Vous devez donc compresser tous vos fichiers de configuration de JumpStart en un seul fichier.

Le fichier de configuration compressé peut être de type :

ProcedureProcédure de création d'un fichier de configuration compressé

Étapes
  1. Accédez au répertoire JumpStart de votre serveur de profils.


    # cd chemin_rép_jumpstart
    
  2. Utilisez un utilitaire de compression pour compresser les fichiers de configuration de JumpStart en un seul.


    Remarque –

    le fichier de configuration compressé ne peut pas comporter de chemins d'accès relatifs. Les fichiers de configuration de la méthode JumpStart personnalisée et le fichier compressé doivent figurer dans le même répertoire.


    Le fichier de configuration compressé doit comporter les fichiers suivants :

    • Profil

    • rules ;

    • rules.ok ;

    Vous pouvez également y inclure le fichier sysidcfg.

  3. Enregistrez le fichier de configuration compressé sur un serveur NFS, un serveur HTTP ou un disque dur local.

Exemple de fichier de configuration compressé

L'exemple ci-dessous illustre l'utilisation de la commande tar pour créer un fichier de configuration compressé nommé config.tar. Les fichiers de configuration de la méthode JumpStart personnalisée figurent dans le répertoire /jumpstart.


Exemple 7–7 Création d'un fichier de configuration compressé


# cd /jumpstart
# tar -cvf config.tar *
a profile 1K
a rules 1K
a rules.ok 1K
a sysidcfg 1K

Création de fichiers de configuration de disque

Cette section explique comment créer des fichiers de configuration pour un disque ou plusieurs disques. Les fichiers de configuration de disque vous permettent d'utiliser pfinstall(1M) à partir d'un seul système pour tester vos profils sur différentes configurations de disques.

ProcedureSPARC : Création d'un fichier de configuration de disque

Étapes
  1. Recherchez un système SPARC avec un disque à tester.

  2. Connectez-vous en tant que superutilisateur ou prenez un rôle équivalent.

    Les rôles contiennent des autorisations et des commandes privilégiées. Pour de plus amples informations sur les rôles, reportez-vous à la rubrique Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  3. Créez un fichier de configuration pour un seul disque –en redirigeant la sortie de la commande prtvtoc(1M) vers un fichier.


    # prtvtoc /dev/rdsk/device_name >disk_config_file
    
    /dev/rdsk/nom_périphérique

    Le nom de périphérique du disque du système. device_name doit avoir le format cwt xdys2 ou cxdy s2.

    fichier_config_disque

    Nom du fichier de configuration du disque

  4. Déterminez si vous souhaitez tester l'installation du logiciel Solaris sur plusieurs disques ou non.

    • Si ce n'est pas le cas, arrêtez. Vous avez terminé.

    • Si c'est le cas, concaténez le fichier de configuration du disque et enregistrez les résultats obtenus dans un nouveau fichier.


      # cat disk_file1 disk_file2 >multi_disk_config
      

      Le nouveau fichier devient le fichier de configuration de plusieurs disques, comme l'illustre l'exemple suivant :


      # cat 104_disk2 104_disk3 104_disk5 >multi_disk_test
      
  5. Déterminez si les numéros des cibles qui figurent dans les noms de périphériques des disques sont uniques dans le fichier de configuration multidisques créé à l'étape précédente.

    • Dans l'affirmative, arrêtez. Vous avez terminé.

    • Dans la négative, ouvrez le fichier dans un éditeur de texte et faites en sorte que chaque numéro de cible soit unique dans les noms de périphériques des disques.

      C'est le cas, par exemple, pour le numéro de cible t0 affecté ici à plusieurs noms de périphérique de disques :

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t0d0s2 partition map

      Changez le second numéro de cible en t2, comme indiqué ici :

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t2d0s2 partition map

SPARC : Exemple de fichier de configuration de disque

L'exemple ci-dessous illustre la création du fichier de configuration d'un seul disque, 104_test, sur un système SPARC équipé d'un disque de 104-Mo.


Exemple 7–8 SPARC : création d'un fichier de configuration de disque

Vous devez rediriger les résultats obtenus par la commande prtvtoc dans un fichier de configuration d'un seul disque, nommé 104_test:


# prtvtoc /dev/rdsk/c0t3d0s2 >104_test

Le contenu du fichier 104_test s'apparente à ce qui suit :

* /dev/rdsk/c0t3d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      72 sectors/track
*      14 tracks/cylinder
*    1008 sectors/cylinder
*    2038 cylinders*    2036 accessible cylinders
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       1      2    00          0     164304   164303   /
       2      5    00          0    2052288  2052287  
       3      0    00     164304     823536   987839   /disk2/b298
       5      0    00     987840     614880  1602719   /install/298/sparc/work
       7      0    00    1602720     449568  2052287   /space

Vous venez de créer des fichiers de configuration de disque pour un système SPARC. La section Test d'un profil contient des informations sur l'utilisation des fichiers de configuration de disque pour tester les profils.


Procedurex86 : Création d'un fichier de configuration de disque

Étapes
  1. Recherchez un système x86 qui contient un disque que vous testez.

  2. Connectez-vous en tant que superutilisateur ou prenez un rôle équivalent.

    Les rôles contiennent des autorisations et des commandes privilégiées. Pour de plus amples informations sur les rôles, reportez-vous à la rubrique Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  3. Créez une partie du fichier de configuration pour un seul disque en sauvegardant les résultats de la commande fdisk(1M) dans un fichier.


    # fdisk -R -W disk_config_file -h /dev/rdsk/device_name
    
    fichier_config_disque

    Le nom du fichier de configuration du disque

    /dev/rdsk/nom_périphérique

    Le nom de périphérique de l'organisation fdisk du disque entier. device_name doit avoir le format c wtxd ys0 ou cx dys0.

  4. Ajoutez la sortie de la commande prtvtoc(1M) au fichier de configuration de disque :


    # prtvtoc /dev/rdsk/device_name >>disk_config
    
    /dev/rdsk/nom_périphérique

    Le nom de périphérique du disque du système. device_name doit avoir le format cwt xdys2 ou cxdy s2.

    config_disque

    Nom du fichier de configuration du disque

  5. Déterminez si vous souhaitez tester l'installation du logiciel Solaris sur plusieurs disques ou non.

    • Si ce n'est pas le cas, arrêtez. Vous avez terminé.

    • Si c'est le cas, concaténez les différents fichiers de configuration à un disque et enregistrez les résultats obtenus dans un nouveau fichier.


      # cat disk_file1 disk_file2 >multi_disk_config
      

      Le nouveau fichier devient le fichier de configuration de plusieurs disques, comme l'illustre l'exemple suivant :


      # cat 104_disk2 104_disk3 104_disk5 >multi_disk_test
      
  6. Déterminez si les numéros des cibles qui figurent dans les noms de périphériques des disques sont uniques dans le fichier de configuration multidisques créé à l'étape précédente.

    • Dans l'affirmative, arrêtez. Vous avez terminé.

    • Sinon, ouvrez le fichier dans un éditeur de texte et faites en sorte que chaque numéro de cible soit unique.

      Le fichier peut contenir, par exemple, le même numéro de cible, t0, pour des noms de disques différents, comme indiqué ici :

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t0d0s2 partition map

      Changez le second numéro de cible en t2, comme indiqué ici :

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t2d0s2 partition map

x86 : exemple de fichier de configuration de disque

L'exemple suivant montre comment créer un fichier de configuration de disque, 500_test, sur un système x86 qui contient un disque de 500 Mo.


Exemple 7–9 x86 : création d'un fichier de configuration de disque

Vous devez d'abord enregistrer les résultats de la commande fdisk dans un fichier nommé 500_test:


# fdisk -R -W 500_test -h /dev/rdsk/c0t0d0p0

Le fichier 500_test s'apparente à ce qui suit :

 * /dev/rdsk/c0t0d0p0 default fdisk table
* Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
*  HBA Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
* systid:
*  1:    DOSOS12
*  2:    PCIXOS
*  4:    DOSOS16
*  5:    EXTDOS
*  6:    DOSBIG
*  86:   DOSDATA
*  98:   OTHEROS
*  99:   UNIXOS
* 130:   SUNIXOS
*
* Id  Act Bhead Bsect   Bcyl  Ehead  Esect  Ecyl Rsect  Numsect
 130  128 44    3       0     46    30     1001 1410   2050140

Ensuite, ajoutez la sortie de la commande prtvtoc au fichier 500_test :


# prtvtoc /dev/rdsk/c0t0d0s2 >>500_test

Le fichier 500_test est désormais un fichier complet de configuration de disque :

* /dev/rdsk/c0t0d0p0 default fdisk table	
* Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
*  HBA Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
* systid:
*  1:    DOSOS12
*  2:    PCIXOS
*  4:    DOSOS16
*  5:    EXTDOS
*  6:    DOSBIG
*  86:   DOSDATA
*  98:   OTHEROS
*  99:   UNIXOS
*  130:  SUNIXOS
*
* Id  Act Bhead Bsect Bcyl  Ehead  Esec  Ecyl Rsect  Numsect
 130  128 44    3     0     46    30    1001 1410   2050140
* /dev/rdsk/c0t0d0s2 partition map
*
* Dimensions:
*      512 bytes/sector
*       94 sectors/track
*       15 tracks/cylinder
*     1110 sectors/cylinder
*     1454 cylinders
*     1452 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*                          First    Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       2      5    01       1410   2045910   2047319
       7      6    00       4230   2043090   2047319  /space
       8      1    01          0      1410     1409
       9      9    01       1410      2820     422987

Vous venez de créer des fichiers de configuration de disque pour un système x86. La section Test d'un profil contient des informations sur l'utilisation des fichiers de configuration de disque pour tester les profils.


Utilisation d'un programme d'installation spécifique de site

Vous pouvez utiliser des scripts de début et de fin pour créer votre propre programme d'installation du logiciel Solaris.

Lorsque vous définissez un signe moins (-) dans le champ de profil, les scripts de début et de fin contrôlent l'installation du logiciel Solaris sur un système et non le profil et le programme d'installation Solaris.

Si, par exemple, la règle suivante détecte un système, le script de début x_install.beg et le script de fin x_install.fin installent le logiciel Solaris sur le système clover:

hostname clover x_install.beg - x_install.fin