Das Archiv kann anhand von Skripten angepasst werden. Verwenden Sie die verschiedenen Typen von Skripten für folgende Vorgänge:
Precreation-Skripten überprüfen das Archiv zum Zeitpunkt der Erstellung und bereiten es für eine anschließende Anpassung vor; sie sind besonders geeignet für Differenzarchive. Solche Skripten können außerdem benutzerdefinierte Archivteile herstellen.
Predeployment-Skripten überprüfen das Archiv zum Zeitpunkt der Installation und bereiten es für eine anschließende Anpassung vor.
Postdeployment-Skripten ändern die Konfiguration eines neuen Systemabbilds auf einem Klon-System.
Reboot- bzw. Neustartskripten nehmen nach dem Systemneustart eine abschließende Änderung der Konfiguration vor.
Richtlinien zur Skripterstellung finden Sie unter Richtlinien für die Erstellung von Anpassungsskripten.
Ein solches Skript wird beim Anlegen des Archivs ausgeführt. Es hat verschiedene Aufgaben.
Es überprüft den Inhalt und die Integrität der Software. Bei Unvollständigkeit bricht dieses Skript die Archiverstellung ab.
Es bereitet Software auf eine anschließende Anpassung auf Klon-Systemen vor.
Es führt während der Archiverstellung eine dynamische Registrierung anderer Installationsskripten durch.
Es fügt eine Meldung in die Datei mit der Zusammenfassung der Flash-Erstellung ein. Die Meldung muss kurz sein und lediglich darauf hinweisen, mit welchem Ergebnis Skripten gestartet und beendet wurden. Die Ergebnisse sind im Zusammenfassungsteil einsehbar.
Erzeugen Sie das Precreation-Skript. Befolgen Sie dabei die Richtlinien in Richtlinien für die Erstellung von Anpassungsskripten.
Speichern Sie das Skript im Verzeichnis /etc/flash/precreation.
Die folgenden Beispiele sind Ausschnitte aus einem Precreation-Skript.
Um die Startzeit im Zusammenfassungsteil zu verzeichnen, verwenden Sie dieses Beispiel:
echo "Precreation-Skript wurde begonnen">> $FLASHDIR/summary
Zum Überprüfen der Vollständigkeit von Software führen Sie den Befehl flcheck aus. Dieser Befehl kann nicht an der Befehlszeile eingegeben werden. Die Syntax lautet wie folgt:
flcheck Dateien und Verzeichnisse der Softwarekomponente ...| - |
In diesem Beispiel werden die Dateien und Verzeichnisse auf Vollständigkeit überprüft:
flcheck Dateien und Verzeichnisse der Softwarekomponente If Not in selection - refuse creation echo "Anwendung unvollständig">>$FLASHDIR/summary
Um neue, unerwartete Dateien und Verzeichnisse beizubehalten und die Archiverstellung nicht abzubrechen, verwenden Sie dieses Beispiel:
flcheck Dateien und Verzeichnisse der Softwarekomponente If Not in selection include by force flinclude Softwarekomponente
Das nächste Beispiel zeigt, wie Bereitstellungsskripten und Daten registriert werden können:
Das folgende Beispiel dient zum Anzeigen anwendungsspezifischer Daten in einem benutzerdefinierten Teil:
cp benutzerdefinierter Teil $FLASHDIR/custom_sections/MyApp
Damit der Ausgang der Installation im Zusammenfassungsteil verzeichnet wird, setzen Sie diesen Beispielcode ein:
echo "Flash-Vorbereitung für Produkt 1 gestartet." >>$FLASH_DIR/summary ... echo "Flash-Vorbereitung für Produkt 1 erfolgreich abgeschlossen.">>$FLASH_DIR/summary
#!/bin/sh echo "Precreation-Skript wurde begonnen" >> $FLASH_DIR/summary cat /opt/TestApp/critical_file_list | flcheck - if [ $? != 0 ]; then echo "Test Precreation-Skript fehlgeschlagen" >> $FLASH_DIR/summary exit 1 if echo "Test Precreation-Skript wurde begonnen" >> $FLASH_DIR/summary /opt/TestApplication/license_cloning $FLASH_DIR/predeployment/.TestApplicationLicenceTransfer \ $FLASH_DIR/custom_sections/TestApplicationLicenceCounter echo "Test Precreation-Skript abgeschlossen" >> $FLASH_DIR/summary exit 0
Mit einem Precreation-Skript kann im Archiv ein benutzerdefinierter Teil erzeugt werden, der anwendungsspezifische Informationen enthalten soll. Dieser Teil dient zur Archivpflege. Ein solches Skript muss im Verzeichnis $FLASH_DIR/sections abgelegt werden. Das Solaris Flash-Archiv verarbeitet benutzerdefinierte Teile nicht. So könnte dieser Teil beispielsweise eine Beschreibung des Archivs oder auch ein Skript für die Integritätsprüfung einer Anwendung enthalten.
Für benutzerdefinierte Teile gilt folgendes Format:
Sie müssen zeilenorientiert sein.
Sie müssen mit Zeilenendezeichen (ASCII 0x0a) enden
Einzelne Zeilen können beliebig lang sein
Binärdaten sind mit einem base64- oder vergleichbaren Algorithmus zu kodieren.
Ein solches Skript wird vor der Installation des Archivs ausgeführt. Wenn das Skript zur Validierung des Archivs bestimmt ist, wird es im Archiv aufbewahrt. Dient es zur Beibehaltung lokaler Konfigurationen des Klon-Systems, so wird es auf dem Klon-System gespeichert. Dieses Skript kann auch lokale Daten, die für eine spätere Anpassung benötigt werden, analysieren und abrufen. So lassen sich beispielsweise client-spezifische Informationen speichern, bevor sie von zu extrahierenden Dateien überschrieben werden. Diese Informationen können dann in der Endphase im Anschluss an die Extraktion verwendet werden.
Erstellen Sie das Predeployment-Skript. Befolgen Sie dabei die Richtlinien in Richtlinien für die Erstellung von Anpassungsskripten.
Speichern Sie das Skript in einem der folgenden Verzeichnisse.
Skripten zur Validierung des Archivs speichern Sie in /etc/flash/predeployment.
Wenn ein Precreation-Skript auf dieses Skript verweist, speichern Sie es im Verzeichnis $FLASH_DIR/preinstall.
Zum Beibehalten von Konfigurationen auf einem Klon-System geben Sie im JumpStart-Profil mit dem Schlüsselwort local_customization den Pfad zu dem auf dem Klon-System gespeicherten Skript an.
#!/bin/sh $FLASH_DIR/TestApplication/check_hardware if [ $? != 0 ]; then echo Nicht unterstützte Hardware exit 1 fi $FLASH_DIR/TestApplication/check_licence_key if [ $? != 0 ]; then echo Keine Lizenz für diesen Host exit 1 fi $FLASH_DIR/TestApplication/deploy_license_key \ $FLASH_DIR/TestApplication/.TestApplicationLicenceTransfer $FLASH_DIR/TestApplication/save_data_files $FLASH_DIR/flash exit 0
Ein solches Skript wird entweder im Archiv aufbewahrt oder in einem lokalen Verzeichnis auf dem Klon-System gespeichert und im Anschluss an die Installation ausgeführt. Es ändert die Konfiguration eines neuen Systemabbilds auf einem Klon-System. Ist das Skript im Archiv gespeichert, dann wirken sich die Änderungen auf alle Klon-Systeme aus. Ist es in einem lokalen Verzeichnis auf einem Klon-System gespeichert, dann wirken sich die Änderungen nur auf dieses Klon-System aus. So können beispielsweise die durch ein Predeployment-Skript gesicherten client-spezifischen Informationen auf eine Klon-Umgebung angewendet werden, um die Installation zu vervollständigen.
Postdeployment-Skripten lassen sich auch zur Reinigung, also zur Entfernung überflüssig gewordener Dateien, nach der Archivinstallation einsetzen. Beispielsweise Protokolldateien wie diejenigen in /var/adm können entfernt werden.
Nicht alle Protokolldateien benötigen jedoch ein Skript, um entfernt zu werden. Die Protokolldateien in /var/tmp können bei Archiverstellung ausgeschlossen werden.
Erstellen Sie das Postdeployment-Skript. Befolgen Sie dabei die Richtlinien in Richtlinien für die Erstellung von Anpassungsskripten.
Speichern Sie das Skript in einem der folgenden Verzeichnisse.
Wenn es auf alle Klon-Systeme angewendet werden soll, speichern Sie es in /etc/flash/postdeployment.
Soll es sich nur auf ein Klon-System auswirken, geben Sie im JumpStart-Profil mit dem Schlüsselwort local_customization den Pfad zu dem auf dem Klon-System lokal gespeicherten Skript an.
#!/bin/sh $FLASH_DIR/TestApplication/clone_reconfiguration $FLASH_DIR/TestApplication/restore_data $FLASH_DIR/flash
Dieses Skript wird im Archiv gespeichert und nach dem Neustart des Systems ausgeführt. Das Skript erledigt abschließende Konfigurationsaufgaben, die unter Umständen nach der Systemkonfiguration anfallen.
Nach der Installation des Solaris Flash-Archivs auf einem Klon-System werden einige Host-spezifische Dateien gelöscht und für das Klon-System neu erstellt. Das Installationsprogramm verwendet zum Löschen und Neuerstellen der rechnerspezifischen Netzwerkkonfigurationsdateien den Befehl sys-unconfig(1M) und die sysidtool(1M)-Programme. Neu erstellt werden unter anderem Dateien wie /etc/hosts, /etc/defaultrouter und /etc/defaultdomain. Reboot-Skripten können Sie für jede beliebige abschließende Änderung der Konfiguration einsetzen.
#!/bin/sh $FLASH_DIR/TestApplication/finalize_license