Ce chapitre aborde la création de mots-clés de règles et de sondes personnalisés, ainsi que la procédure à suivre.
Pour bien comprendre ce que sont les mots-clés de sondes, il est important d'avoir assimilé ce que sont les mots-clés de règles. Un mot-clé de règles est une unité lexicale ou un mot prédéfini qui décrit l'attribut général d'un système, son nom d'hôte, hostname, ou la taille de sa mémoire, memsize, par exemple. Les mots-clés de règles, ainsi que les valeurs qui y sont associées, vous permettent d'établir une correspondance entre un profil et un système doté d'un attribut similaire. C'est en établissant de telles correspondances entre attributs que l'on installe le logiciel Solaris sur chaque système d'un groupe donné.
Les variables environnementales de la méthode JumpStart personnalisée, utilisées dans les scripts de début et de fin, sont définies à la demande. Les informations relatives au système d'exploitation installé sur un système donné, par exemple, ne figurent dans SI_INSTALLED que si vous avez spécifié le mot-clé installed.
Dans certains cas, vous devez extraire les mêmes informations dans un script de début ou de fin dans un but autre que de rechercher un système ou d'exécuter un profil. Les mots-clés de sondes apportent la solution. Ils extraient les informations d'attribut sans que vous ayez à définir une condition de correspondance pour exécuter un profil.
Reportez-vous à la rubrique Mots-clés et valeurs des sondes pour une liste des valeurs et des mots-clés de sonde.
Les mots-clés de sondes et de règles décrits dans les sections Mots-clés et valeurs des règles et Mots-clés et valeurs des sondes peuvent ne pas être suffisamment précis pour vos besoins. Vous pouvez définir vos propres mots-clés personnalisés en créant un fichier custom_probes.
Le fichier custom_probes est un script de shell Bourne qui comporte deux types de fonctions. Vous devez impérativement enregistrer votre fichier custom_probes et votre fichier rules dans un même répertoire JumpStart. Vous trouverez ci-dessous les deux types de fonctions que vous pouvez définir dans un fichier custom_probes.
Sonde : collecte les informations dont vous avez besoin ou exécute ce que vous lui avez demandé, et configure une variable environnementale SI_ correspondante d'après votre définition. Les fonctions d'une sonde deviennent des mots-clés de sondes.
Comparaison : appelle une fonction de sonde correspondante, compare les résultats obtenus par la fonction de sonde et renvoie l'indicateur 0 en cas de correspondance établie avec le mot-clé ou 1 dans le cas contraire. Les fonctions de comparaison deviennent des mots-clés de règles.
Votre fichier custom_probes peut comporter n'importe quel commande, variable ou algorithme de shell Bourne valide.
vous pouvez définir des fonctions de sonde et de comparaison nécessitant un seul argument dans votre fichier custom_probes. Lorsque vous utilisez le mot-clé de sonde personnalisé correspondant du fichier rules, l'argument qui suit le mot-clé est interprété (comme $1).
Lorsque vous utilisez le mot-clé de règle personnalisé correspondant du fichier rules, les arguments sont interprétés en séquence. La séquence commence après le mot-clé et prend fin avant le prochain && ou le script de début, le premier des deux prévalant.
Le fichier custom_probes doit remplir les conditions suivantes :
Dépendre de root.
Être exécutable et disposer du niveau de permission 755.
Comporter au moins une fonction de sonde et une fonction de comparaison correspondante.
Dans un souci de clarté et d'organisation, définissez d'abord toutes vos fonctions de sonde en début de fichier, puis l'ensemble des fonctions de comparaison.
Le nom d'une fonction de sonde doit commencer par probe_. Le nom d'une fonction de comparaison doit commencer par cmp_.
Les fonctions qui commencent par probe_ définissent de nouveaux mots-clés de sondes. La fonction probe_tcx, par exemple, définit le nouveau mot-clé de sonde tcx. Les fonctions qui commencent par cmp_ définissent de nouveaux mots-clés de règles. cmp_tcx, par exemple, définit le nouveau mot-clé de règle tcx.
Créez un fichier texte de script de shell Bourne dans l'éditeur de texte de votre choix. Nommez ce fichier custom_probes.
Dans votre fichier texte custom_probes, définissez vos fonctions de sonde et de comparaison.
vous pouvez définir des fonctions de sonde et de comparaison nécessitant des arguments dans le fichier custom_probes. Lorsque vous utilisez le mot-clé de sonde personnalisé correspondant du fichier rules, les arguments qui suivent le mot-clé sont interprétés en séquence (comme $1, $2 et ainsi de suite).
Lorsque vous utilisez le mot-clé de règle personnalisé correspondant du fichier rules, les arguments sont interprétés en séquence. La séquence commence après le mot-clé et prend fin avant le prochain && ou le script de début, le premier des deux prévalant.
Enregistrez votre fichier custom_probes dans le répertoire JumpStart à côté du fichier rules.
Vérifiez que le fichier rules dépend de root et que le degré de permission est réglé sur 644.
Vous pouvez définir d'autres exemples de fonctions de sonde et de comparaison dans les répertoires suivants :
/usr/sbin/install.d/chkprobe sur un système sur lequel est installé le logiciel Solaris ;
/Solaris_10_606/Tools/Boot/usr/sbin/install.d/chkprobe sur le DVD du système d'exploitation Solaris ou le CD Logiciel Solaris - 1
Le fichier custom_probes suivant comporte une fonction de sonde et de comparaison qui teste la présence d'une carte graphique TCX.
#!/bin/sh # # custom_probe script to test for the presence of a TCX graphics card. # # # PROBE FUNCTIONS # probe_tcx() { SI_TCX=`modinfo | grep tcx | nawk '{print $6}'` export SI_TCX } # # COMPARISON FUNCTIONS # cmp_tcx() { probe_tcx if [ "X${SI_TCX}" = "X${1}" ]; then return 0 else return 1 if } |
Le fichier rules suivant illustre l'utilisation du mot-clé de sonde défini dans l'exemple précédent, tcx. En cas de détection d'une carte graphique TCX installée sur un système, profile_tcx s'exécute. Sinon, c'est profile qui s'exécute.
placez toujours les mots-clés de sonde au début du fichier rules ou tout du moins dans les premières lignes. Cette position assure que les mots-clés sont lus et exécutés avant que d'autres mots-clés de règle ne dépendent des mots-clés de sonde.
probe tcx tcx tcx - profile_tcx - any any - profile - |
Pour pouvoir utiliser un profil, le fichier rules et le fichier custom_probes, vous devez exécuter le script check pour indiquer que les fichiers sont correctement définis. Si tous les profils, règles et fonctions de sondes et de comparaison sont définis correctement, le programme crée les fichiers rules.ok et custom_probes.ok. Le Tableau 8–1 décrit la fonction de script check.
Tableau 8–1 Conséquences de l'utilisation du script check
Vérifiez que le script check figure dans le répertoire JumpStart.
Le script check se trouve dans le répertoire Solaris_10_606/Misc/jumpstart_sample du DVD du système d'exploitation Solaris ou du CD Logiciel Solaris - 1.
Exécutez le script check pour valider les fichiers rules et custom_probes.
$ ./check -p path -r file_name |
Valide le fichier custom_probes en utilisant le script check de l'image logicielle Solaris de votre plate-forme à la place du script check du système que vous utilisez. chemin est l'image qui figure sur un disque local ou sur le DVD du système d'exploitation Solaris ou le Logiciel Solaris - 1 monté.
Utilisez cette option pour exécuter la dernière version de check si votre système utilise une version précédente de Solaris.
Définit un nom de fichier autre que le fichier custom_probes. L'utilisation de l'option -r vous permet de tester la validité d'un ensemble de fonctions avant d'intégrer celles-ci dans le fichier custom_probes.
Au cours de son exécution, le script check indique la validité des fichiers rules et custom_probes et de chaque profil. S'il ne rencontre aucune erreur, le script signale : “Configuration JumpStart personnalisée correcte” ; création des fichiers rules.ok et custom_probes.ok dans le répertoire JumpStart.
Déterminez si le fichier custom_probes.ok est exécutable.
S'il l'est, reportez-vous à l'Étape 5.
Dans la négative, entrez la commande suivante :
# chmod +x custom_probes |
Vérifiez que le fichier custom_probes.ok dépend de root et que le degré de permission est établi sur 755.