Ce chapitre décrit les fonctions facultatives utilisables pour créer des outils d'installation supplémentaires avec la méthode JumpStart personnalisée.
les instructions délivrées dans ce chapitre s'appliquent aussi bien à un serveur SPARC qu'à un serveur x86, utilisé pour fournir des fichiers JumpStart personnalisés, et 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.
Un script de début est un script de shell Bourne défini par l'utilisateur, que vous spécifiez 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 :
créer des profils dérivés,
sauvegarder des fichiers avant une mise à niveau
Ne spécifiez rien sur le script qui puisse empêcher le montage des systèmes de fichiers sur /a au cours d'une installation initiale ou d'une mise à niveau. Si le programme JumpStart ne parvient pas à monter les systèmes de fichiers sur /a, une erreur se produit, entraînant l'échec de l'installation.
Lors de l'installation, les résultats du script de début sont déposés dans /tmp/begin.log . L'installation étant achevée, le fichier journal est redirigé vers /var/sadm/system/logs/begin.log.
Assurez-vous que root possède le script de début et que les autorisations sont définies sur 644.
Vous pouvez employer des variables environnementales JumpStart personnalisées dans vos scripts de début. Pour consulter la liste des variables environnementales, reportez-vous à la rubrique Variables environnementales de la méthode JumpStart personnalisée.
Enregistrez vos scripts de début dans le répertoire JumpStart.
Un profil dérivé est un profil créé de manière dynamique par un script de début lors 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 :
Mettez le signe égal (=) dans le champ profil à la place du profil.
Réglez le champ de début sur un script de début conçu pour créer un profil dérivé dépendant du système sur lequel vous souhaitez intaller Solaris.
Lorsqu'un système détecte une règle où le champ profil correspond au signe égal (=), le script de début crée le profil dérivé qui est 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.
#!/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 cet exemple, le script de début doit utiliser la variable environnementale SI_PROFILE pour le nom du profil dérivé, réglé sur /tmp/install.input par défaut.
si vous utilisez un script de début pour créer un profil dérivé, vérifiez que le script ne comporte aucune erreur. Le script check ne vérifie pas les profils dérivés, ceux-ci n'étant effectivement créés qu'une fois que le script de début est exécuté.
Un script de fin est un script de shell Bourne, 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 :
ajouter des fichiers,
ajouter des modules individuels ou des patchs en plus de ceux déjà installés dans un groupe de logiciels donné,
personnaliser l'environnement racine,
définir le mot de passe superutilisateur d'accès au système,
installer des logiciels supplémentaires.
Le Programme suninstall de Solaris monte les systèmes de fichiers du système sur /a. Les systèmes de fichiers restent montés sur /a jusqu'à la réinitialisation de votre système. Vous pouvez utiliser un script de fin pour ajouter des fichiers, en changer ou les supprimer de la nouvelle hiérarchie de systèmes de fichiers. La procédure modifie les systèmes de fichiers montés sur /a.
Lors de l'installation, les résultats du script de fin sont déposés dans /tmp/finish.log. L'installation étant achevée, le fichier journal est redirigé à /var/sadm/system/logs/finish.log.
Veillez à ce que root possède le script de fin et à ce que les permissions soient définies sur 644.
Vous pouvez employer des variables environnementales JumpStart personnalisées dans vos scripts de fin. Pour consulter la liste des variables environnementales, reportez-vous à la rubrique Variables environnementales de la méthode JumpStart personnalisée.
Enregistrez vos scripts de fin dans le répertoire JumpStart.
Grâce au script de fin, vous pouvez ajouter des fichiers du répertoire JumpStart à un système déjà installé. Vous pouvez ajouter les 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.
vous pouvez également remplacer des fichiers en les copiant du répertoire JumpStart sur des fichiers existants du système installé.
Copiez tous les fichiers que vous ajoutez au système installé dans le répertoire JumpStart.
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_fichiers /a/nom_chemin_d'accès |
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 |
Vous pouvez créer un script de fin qui procède à l'ajout automatique de modules ou de patchs lorsque le logiciel Solaris est 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 l'ajout des modules.
L'Exemple 24–3 illustre un script de fin conçu pour l'ajout de patchs.
#!/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} |
Monte un répertoire sur un serveur, dans lequel figure le module que vous souhaitez installer.
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. Utilisez ce fichier temporaire d'administration des modules pour que l'ajout de modules se fasse sans intervention de votre part.
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.
#!/bin/sh ######## # # OPTIONS CONFIGURABLES PAR L'UTILISATEUR # ######## # L'emplacement des patchs à ajouter au système après son installation. # Le système d'exploitation rév. (5.x) et l'architecture (`mach`) vont être ajoutés à la racine. Par exemple, /foo sur un SPARC 2.6 deviendra /foo/5.6/sparc LUPATCHHOST=ins3525-svr LUPATCHPATHROOT=/export/solaris/patchdb ######### # # PASSE CE POINT, AUCUNE OPTION MODIFIABLE PAR L'UTILISATEUR # ######### BASEDIR=/a # Détermine la source et la cible des versions du système d'exploitation echo Determining OS revisions... SRCREV=`uname -r` echo Source $SRCREV LUPATCHPATH=$LUPATCHPATHROOT/$SRCREV/`mach` # # Ajoute les patchs requis # 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 |
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 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
Les scripts de fin peuvent également servir à personnaliser des fichiers déjà installés sur votre système. Le script de fin de l'Exemple 24–4, par exemple, personnalise l'environnement superutilisateur en ajoutant des informations dans le fichier .cshrc du répertoire racine (/).
#!/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 } |
Votre système se réinitialise lorsque 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 la rubrique Exemple 24–5.
#!/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} |
Règle la variable PASSWD sur un mot de passe superutilisateur crypté, issu d'une entrée existante du fichier /etc/shadow d'un système.
Crée un fichier temporaire de /a/etc/shadow .
Change l'entrée superutilisateur du fichier /etc/shadow du nouveau système installé en utilisant $PASSWD comme champ de mot de passe.
Supprime le fichier temporaire /a/etc/shadow.
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.
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.
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).
Plutôt que d'utiliser la commande add_install_client pour désigner l'emplacement des fichiers de configuration de la méthode JumpStart personnalisée, vous pouvez spécifier l'emplacement de ces fichiers lors de l'initialisation de votre système. Vous ne pouvez toutefois spécifier qu'un seul nom de fichier lorsque vous exécutez la commande boot. Vous devez donc compresser tous vos fichiers de configuration de JumpStart en un seul fichier. Le fichier de configuration compressé peut être de type :
tar,
tar compressé,
zip,
bzip tar.
Accédez au répertoire JumpStart de votre serveur de profils.
# cd chemin_rép_jumpstart |
Utilisez un utilitaire de compression pour compresser les fichiers de configuration de JumpStart en un seul.
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 :
un profil,
rules,
rules.ok.
Vous pouvez également y inclure le fichier sysidcfg.
Enregistrez le fichier de configuration compressé sur un serveur NFS, un serveur HTTP ou un disque dur local.
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.
# cd /jumpstart # tar -cvf config.tar * a profile 1K a rules 1K a rules.ok 1K a sysidcfg 1K |
Cette rubrique vous explique comment créer des fichiers de configuration d'un ou de plusieurs disques. Les fichiers de configuration de disque vous permettent d'utiliser pfinstall(1M) à partir d'un système donné pour tester vos profils sur différentes configurations de disques.
Repérez le disque d'un système SPARC que vous souhaitez tester.
Devenez superutilisateur.
Créez un fichier de configuration d'un seul disque en redirigeant le contenu obtenu par la commande prtvtoc(1M) dans un fichier.
# prtvtoc /dev/rdsk/nom_périphérique>fichier_config_disque |
Le nom de périphérique du disque du système. nom_périphérique doit être sous la forme cwt xdys2 ou c xdys2.
Nom du fichier de configuration du disque
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 fichier_disque1 fichier_disque2>config_multi_disques |
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 |
Déterminez si les numéros des cibles qui figurent dans les noms de périphérique des disques sont uniques dans le fichier de configuration multi-disques 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 |
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.
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 disquepour un système SPARC. La rubrique Test d'un profil comporte des informations sur l'utilisation des fichiers de configuration de disque pour tester des profils.
Repérez un système x86 sur lequel figure un disque que vous souhaitez tester.
Devenez superutilisateur.
Créez une partie de votre fichier de configuration de disque en enregistrant les résultats de la commande fdisk(1M) dans un fichier.
# fdisk -R -W fichier_config_disque![ %Comment; [-h]] /dev/rdsk/nom_périphérique |
Le nom du fichier de configuration du disque
Le nom de périphérique de l'agencement fdisk de tout le disque. nom_périphérique doit être sous la forme cwtx dyp0 ou c xdyp0.
Ajoutez les résultats de la commande prtvtoc( 1M) dans le fichier de configuration de disque :
# prtvtoc /dev/rdsk/nom_périphérique >>config_disque |
Le nom de périphérique du disque du système. nom_périphérique doit être sous la forme cwt xdys2 ou c xdys2.
Le nom du fichier de configuration du disque
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 fichier_disque1 fichier_disque2>config_multi_disques |
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 |
Déterminez si les numéros des cibles qui figurent dans les noms de périphérique des disques sont uniques dans le fichier de configuration multi-disques 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.
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 |
L'exemple ci-dessous illustre la création du fichier de configuration d'un seul disque, 500_test, sur un système x86 équipé d'un disque de 500 Mo.
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 |
Vous devez ensuite ajouter les résultats de la commande prtvtoc dans un fichier nommé 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 rubrique Test d'un profil comporte des informations sur l'utilisation des fichiers de configuration de disque pour tester des profils.
Vous pouvez utiliser des scripts de début et de fin pour créer votre propre programme d'installation du logiciel Solaris.
Lorsque vous spécifiez le signe moins (-) dans le champ de profil, les scripts de début et de fin contrôlent la manière dont le logiciel Solaris est installé sur un système et non le profil et le Programme suninstall de 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 nommé clover :
hostname clover x_install.beg - x_install.fin |