In diesem Kapitel finden Sie Informationen und Verfahren zum Erstellen eigener Rule- und Probe-Schlüsselwörter.
Damit Sie verstehen können, was ein Probe-Schlüsselwort ist, müssen Sie zunächst wissen, was ein Rule-Schlüsselwort ist. Ein Rule-Schlüsselwort ist eine vordefinierte lexikalische Einheit oder ein Wort, die bzw. das ein allgemeines Systemattribut beschreibt, wie zum Beispiel den Host-Namen (hostname) oder die Hauptspeichergröße (memsize). Rule-Schlüsselwörter und die zugehörigen Werte ermöglichen es, ein System auf der Grundlage übereinstimmender Systemattribute einem Profil zuzuordnen. Das dem jeweiligen System zugeordnete Profil definiert, wie die Solaris-Software auf allen Systemen mit diesem Profil installiert werden soll.
Benutzerdefinierte JumpStart-Umgebungsvariablen, die in Begin- und Finish-Skripten eingesetzt werden, setzen Sie bei Bedarf. Informationen darüber, welches Betriebssystem bereits auf einem System installiert ist, steht in SI_INSTALLED erst zur Verfügung, nachdem das Schlüsselwort installed verwendet wurde.
In manchen Situationen müssen Sie vielleicht dieselben Informationen aus einem Begin- oder Finish-Skript extrahieren, allerdings zu einem anderen Zweck als dem Zuordnen eines Systems und dem Ausführen eines Profils. Dieses Problem können Sie mit Probe-Schlüsselwörtern lösen. Probe-Schlüsselwörter dienen zum Extrahieren von Attributwerten, so dass Sie keine entsprechende Bedingung einrichten und ein Profil ausführen müssen.
Eine Liste der Probe-Schlüsselwörter und -Werte finden Sie unter "Probe-Schlüsselwörter und -Werte".
Wenn die in "Rule-Schlüsselwörter und -Werte" und "Probe-Schlüsselwörter und -Werte" beschriebenen Rule- und Probe-Schlüsselwörter für Ihre Anforderungen nicht präzise genug sind, können Sie eigene Rule- bzw. Probe-Schlüsselwörter definieren, indem Sie eine custom_probes-Datei erstellen.
Die Datei custom_probes ist ein Bourne-Shell-Skript, das zwei Typen von Funktionen enthält. Sie müssen die Datei custom_probes in dem JumpStart-Verzeichnis speichern, in dem sich auch die Datei rules befindet. Sie können in einer custom_probes-Datei die folgenden zwei Funktionen definieren:
Probe-Funktionen - Dienen zum Erfassen der benötigten Informationen oder zum Setzen einer entsprechenden SI_-Umgebungsvariablen, die Sie definieren. Probe-Funktionen werden zu Probe-Schlüsselwörtern.
Vergleichsfunktionen - Rufen die entsprechende Probe-Funktion auf, vergleichen die Ausgabe der Probe-Funktion und geben 0 zurück, wenn das Schlüsselwort übereinstimmt, bzw. 1, wenn das Schlüsselwort nicht übereinstimmt. Comparison-Funktionen werden zu Rule-Schlüsselwörtern.
Die Datei custom_probes kann alle gültigen Befehle, Variablen und Algorithmen der Bourne-Shell enthalten.
Sie können Probe- und Comparison-Funktionen definieren, für die ein einzelnes Argument in der Datei custom_probes erforderlich ist. Wenn Sie das entsprechende benutzerdefinierte Probe-Schlüsselwort in der Datei rules verwenden, wird das Argument nach dem Schlüsselwort interpretiert (als $1).
Wenn Sie das entsprechende benutzerdefinierte Rule-Schlüsselwort in der Datei rules verwenden, wird das Argument so interpretiert, dass es nach dem Schlüsselwort beginnt und vor dem nächsten && oder Begin-Skript endet, je nachdem, was zuerst auftritt.
Die Datei custom_probes muss folgende Anforderungen erfüllen:
Der Eigentümer muss root sein.
Die Datei muss ausführbar und die Berechtigungen müssen auf 755 gesetzt sein.
Die Datei muss mindestens eine Probe-Funktion und eine entsprechende Comparison-Funktion enthalten.
Um in einer solchen Datei eine klare Struktur zu erzielen, sollten Sie am Anfang der Datei zunächst alle Probe-Funktionen definieren und dann alle Comparison-Funktionen.
Der Name einer Probe-Funktion muss mit probe_ anfangen. Der Name einer Comparison-Funktion muss mit cmp_ anfangen.
Funktionen, die mit probe_ anfangen, definieren neue Probe-Schlüsselwörter. Die Funktion probe_tcx definiert zum Beispiel das neue Probe-Schlüsselwort tcx. Funktionen, die mit cmp_ anfangen, definieren neue Rule-Schlüsselwörter. cmp_tcx definiert zum Beispiel das neue Rule-Schlüsselwort tcx.
Erstellen Sie in einem Texteditor eine Textdatei für ein Bourne-Shell-Skript. Geben Sie der Datei den Namen custom_probes.
Definieren Sie in der Datei custom_probes die gewünschten Probe- und Comparison-Funktionen.
Sie können Probe- und Comparison-Funktionen definieren, für die in der Datei custom_probes Argumente erforderlich sind. Wenn Sie das entsprechende benutzerdefinierte Probe-Schlüsselwort in der Datei rules verwenden, werden die Argumente nach dem Schlüsselwort nacheinander interpretiert (als $1, $2 usw.).
Wenn Sie das entsprechende benutzerdefinierte Rule-Schlüsselwort in der Datei rules verwenden, werden die Argumente nach dem Schlüsselwort und bis zum nächsten && oder Begin-Skript nacheinander interpretiert, je nachdem, was zuerst auftritt.
Speichern Sie die Datei custom_probes in dem JumpStart-Verzeichnis, das auch die Datei rules enthält.
Stellen Sie sicher, dass root Eigentümer der Datei rules ist und dass die Berechtigungen auf 644 gesetzt sind.
Zusätzliche Beispiele für Probe- und Comparison-Funktionen finden Sie in den folgenden Verzeichnissen:
/usr/sbin/install.d/chkprobe auf einem System, auf dem die Solaris-Software installiert ist
/Solaris_9/Tools/Boot/usr/sbin/install.d/chkprobe auf der Solaris 9-DVD oder der Solaris 9 Software 1 of 2-CD
Die folgende custom_probes-Datei enthält eine Probe- und Comparison-Funktion, mit der geprüft wird, ob eine TCX-Grafikkarte vorhanden ist.
#!/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 fi } |
Die folgende rules-Beispieldatei zeigt, wie Sie das im vorherigen Beispiel definierte Probe-Schlüsselwort, tcx, verwenden können. Wenn eine TCX-Grafikkarte installiert ist und erkannt wird, wird das Profil profile_tcx ausgeführt. Anderenfalls wird das Profil profile ausgeführt.
Stellen Sie Probe-Schlüsselwörter immer an den Anfang der Datei rules. So stellen Sie sicher, dass die Schlüsselwörter vor Rule-Schlüsselwörtern gelesen und ausgeführt werden, die von den Probe-Schlüsselwörtern abhängen.
probe tcx tcx tcx - profile_tcx - any any - profile - |
Bevor Sie ein Profil, eine rules- und eine custom_probes-Datei einsetzen können, müssen Sie mit dem Skript check überprüfen, ob die Dateien korrekt definiert sind. Wenn alle Profile, Regeln, Probe- und Comparison-Funktionen korrekt definiert sind, werden die Datei rules.ok und die Datei custom_probes.ok erstellt. Tabelle 25-1 beschreibt, welche Aufgaben das Skript check ausführt.
Tabelle 25-1 Was geschieht, wenn das Skript check ausgeführt wird?
Stellen Sie sicher, dass sich das Skript check im JumpStart-Verzeichnis befindet.
Das Skript check befindet sich im Verzeichnis Solaris_9/Misc/jumpstart_sample auf der Solaris 9-DVD oder der Solaris 9 Software 1 of 2-CD.
Führen Sie das Skript check aus, um die Datei rules und die Datei custom_probes zu validieren.
$ ./check [[-p Pfad -r Dateiname]] |
Validiert die Datei custom_probes unter Verwendung des Skripts check aus dem Abbild der Solaris 9-Software für die jeweilige Plattform anstelle des Skripts check auf dem System, mit dem Sie arbeiten. Pfad ist der Pfad zu einem Abbild auf einer lokalen Festplatte oder zu einer eingehängten Solaris 9-DVD oder Solaris 9 Software 1 of 2-CD. Verwenden Sie diese Option, um die neueste Version von check auszuführen, wenn auf dem System eine frühere Version von Solaris läuft. |
|
Gibt eine andere Datei als die mit dem Namen custom_probes an. Mithilfe der Option -r können Sie die Gültigkeit einer Reihe von Funktionen prüfen, bevor Sie die Funktionen in die Datei custom_probes aufnehmen. |
Während das Skript check ausgeführt wird, werden Meldungen zur Validierung der Datei rules, der Datei custom_probes und der einzelnen Profile ausgegeben. Wenn keine Fehler auftreten, gibt das Skript Folgendes aus: "The custom JumpStart configuration is ok". Im JumpStart-Verzeichnis werden die Datei rules.ok und die Datei custom_probes.ok erstellt.
Ermitteln Sie, ob die Datei custom_probes.ok ausführbar ist.
Wenn ja, fahren Sie mit Schritt 5 fort.
Wenn nicht, geben Sie den folgenden Befehl ein:
chmod +x custom_probes
Stellen Sie sicher, dass root Eigentümer der Datei custom_probes.ok ist und dass die Berechtigungen auf 755 gesetzt sind.