Vorheriges Thema: Appliance-Installation für Ubuntu-Linux-Verteilungen

Nächstes Thema: Appliance-Kit-Installation für Windows

Appliance-Kit-Installation Für RedHat- und CentOS-Linux-Verteilungen

Dateien
Kompatibilität

Die Versionen "apk-*-linux-rh" sind mit den folgenden Betriebssystem-Distributionen kompatibel:

Zum Installieren von APK benötigen Sie:

Das Image muss das ext3-Dateisystem enthalten, wenn die von APK bereitgestellten Kernel- und initrd-Dateien verwendet werden.

Image vorbereiten

Wichtig! Die APK-Linux-Versionen unterstützen nur virtuelle PVM-Computer-Einrichtungen mithilfe des von CA 3Tera AppLogic bereitgestellten Builds des Linux-Kernels. Das Installationsskript löscht jede GRUB-Konfigurationsdatei auf dem Ziel-Image, daher ist kein Start im HVM-Modus möglich. Beim Speichern der GRUB-Datei (und ohne Löschen des Standard-BS-Kernels wie unten dokumentiert) kann APK auf einer Linux-Domäne verwendet werden. Dies wird aber nicht unterstützt und funktioniert möglicherweise nicht. Insbesondere sind ein sauberes Herunterfahren der Appliance im HVM-Modus sowie die automatische Bereitstellung von Volumes entsprechend der Bereitstellungspfade im CA 3Tera AppLogic-Klassen-Deskriptor nicht möglich.

Die folgenden Schritte können je nach der ursprünglichen Installation des Betriebssystems variieren. Sie werden nicht vom APK-Setupskript ausgeführt, und werden dem Ermessen des Administrators überlassen, da einige von ihnen invasiv sind und destruktiv sein können, wenn sie versehentlich auf einem Live-System ausgeführt werden (statt auf dem Image, das vorbereitet wird). Daher wird davon abgeraten, sie über ein automatisiertes Skript ablaufen zu lassen. Überspringen Sie Schritte, die für Sie nicht zutreffend sind.

So bereiten Sie das Image vor

  1. Überprüfen Sie, dass das Datenträger-Image ein ext3-Dateisystem ist.

    Wenn das Betriebssystem als "ext2" installiert wurde, führen Sie den folgenden Befehl aus, um das Image in "ext3" zu konvertieren:

    tune2fs -j
    

    Um "ext2" (oder ein anders Dateisystem als "ext3") zu verwenden, muss die im Lieferumfang von APK enthaltene Datei "initrd" neu erstellt werden.

  2. Führen Sie den folgenden Befehl aus, um die Netzwerkkonfigurationsdateien zu entfernen:
    rm /etc/sysconfig/network-scripts/ifcfg-eth* 
    
  3. Bearbeiten Sie die Datei "etc/fstab", und ändern Sie den Namen des Stammgeräts zu "/dev/hda1".

    Das Installationsprogramm führt auch eine Überprüfung durch und zeigt eine Warnung an, wenn das Stammgerät durch eine Bezeichnung oder UUID angegeben wird.

  4. Führen Sie den folgenden Befehl aus, um das Kernelpaket zu löschen. (Überspringen Sie diesen Schritt, wenn Sie ein Image erstellen, das im Modus "Hardware-Emulation" ausgeführt wird.)
    rpm --root path/to/image -e --nodeps kernel
    

    Oder der Shell "vol manage":

    chroot  path/to/image rpm -e --nodeps kernel 
    
  5. Deinstallieren Sie alle Betriebssystemdienste, die nicht verwendet werden.

Hinweis: Nach der Bereinigung kann das Volume verkleinert werden, um ein kleineres Start-Volume-Image für die Appliance zu erhalten. Stellen Sie aber sicher, dass mindestens 10-15 MB freier Speicherplatz verbleiben, um genügend Platz für die Installation des XEN DomU-Kernels und APK und für Protokolldateien, temporäre Dateien usw. zu haben.

APK installieren

Die hier angegebenen Installationsanweisungen setzen voraus, dass die APK-Installation auf einem BS-Image vorgenommen wird, das eigentlich nicht ausführt wird, aber zuvor vorbereitet wurde, indem entweder ein sauberes BS installiert, heruntergefahren und auf den Startdatenträger zurückgegriffen wurde, oder indem eine vorhandene CA 3Tera AppLogic-Appliance wird mit einer neuen APK-Version aktualisiert wurde.

Auch eine Live-Installation (auf einem laufenden Betriebssystem) ist möglich. Verwenden Sie sie zusammen mit dem Hilfsprogramm "iso2class", das ab CA 3Tera AppLogic ServicePack 2.4.5 bereitgestellt wird. Beachten Sie, dass "iso2class" eine HVM-Appliance für Sie erstellt und dass APK nicht im HVM-Modus funktioniert. Die Appliance muss zum Modus "Paravirtualisiert" geändert werden, nachdem APK installiert wurde. Führen Sie für eine Installation in einem Live-System die folgenden Schritte aus; verwenden Sie jedoch "/" als aktuelles Verzeichnis für alle Vorgänge. Dies wird am besten auf einem virtuellen XEN-Computer durchgeführt (z. B. bei der Verwendung von "iso2class"). Wird dies auf einem Bare Metal-System durchgeführt, kann der Rechner nicht mehr gestartet werden.

So installieren Sie APK

  1. Laden Sie das Betriebssystem-Image in Ihrem Dateisystem.

    Wenn das Image bereits als ein Volume auf einem CA 3Tera AppLogic-Grid installiert ist, kann darauf mithilfe des Befehls "vol manage" zugegriffen werden.

  2. Kopieren Sie die APK-Dateien in das Verzeichnis "/tmp" auf dem Image selbst oder in ein temporäres Verzeichnis auf dem Host, auf dem das Image geladen wird. Wenn sich das Image bereits auf einem Grid befindet, kopieren Sie die Dateien über die Webschnittstelle auf das Image selbst. (Ohne Grid: Beachten Sie, dass die folgenden Vorgänge als Benutzer "root" durchgeführt werden müssen.)

Wichtig: APK benötigt für diesen Vorgang das Paket "dhclient". Es wird nicht standardmäßig auf CentOS5 installiert. Installieren Sie das Paket "dhclient" auf Ihrem Image, bevor Sie APK installieren.

Das dhclient-RPM-Paket kann auf einem nicht aktiven BS-Image mithilfe von "chroot" installiert werden (z. B. als Bereitstellung in der Shell "vol manage"). Das RPM-Paket sollte auf einem der CentOS-Mirror-Websites verfügbar sein (z. B.  http://mirror.stanford.edu/yum/pub/centos/5.1/os/i386/CentOS/dhclient-3.0.5-7.el5.i386.rpm).

So installieren Sie das Paket "dhclient"

  1. Entpacken Sie das DomU-Kernel und das APK-Binärarchiv in das Stammverzeichnis des Images. Im Folgenden wird ein Beispiel der Befehle dargestellt, die ausgeführt werden:
    cd /mnt/vol 
    tar -zxf tmp/domu-linux-2.6.18.8.386.tar.gz # ** siehe Hinweis unten! 
    tar -zxf tmp/apk-2.0.14-rh.tar.gz 
    

    Das Setupskript wird ins Verzeichnis "./tmp" entpackt.

    Wichtig! Verwenden Sie das richtige domu-linux-Archiv für Ihre Distro-Architektur. Wenn Sie ein 32-Bit Kernel installieren, funktioniert es auf einem 64-Bit-Distro nicht.

  2. Führen Sie das folgende Setupskript aus:
    tmp/apk-install 
    

    Das Setupskript (und die Dateien mit der Erweiterung "tar", falls sie in das Image selbst kopiert wurden) können jetzt mit dem folgenden Befehl entfernt werden:

    rm tmp/apk-install tmp/domu-linux-*.tar.gz tmp/apk-*.tar.gz 
    

    Hinweis: Die im Lieferumfang von APK enthaltenen init-Skripte unterstützen die Appliance-spezifischen Skripte nicht mehr, die unter "/appliance" installiert sind. Wenn es vorhanden ist, hält das Installationsskript an und fordert eine Benutzereingabe an. Wenn keine Appliance-spezifische Anpassung in diesem Verzeichnis vorgenommen wurde (d. h., die Inhalte sind gleich oder ähneln dem LUX-Inhalt), können Sie es löschen. Die ganze Standardfunktionalität, die dort installiert wurde, wird jetzt von APK bereitgestellt. Klicken Sie anderenfalls, um nach "/tmp" zu speichern und mit der Installation fortzufahren.

  3. Heben Sie das Image auf, und importieren es zu Ihrem CA 3Tera AppLogic-Grid. (Oder schließen Sie die Shell "vol manage", wenn sich das Image bereits auf Ihrem Grid befindet und mithilfe von "vol manage" bearbeitet wurde.)
  4. Wenn es sich um das Image einer vorhandenen Appliance handelt, führen Sie die folgenden Schritte aus:
    1. Bearbeiten Sie die Klasse (mithilfe des GUI-Editors) und entfernen Sie die Kernel- und initrd-Dateinamen.
    2. Legen Sie den Konfigurationsmodus auf "dhcp" fest.
Appliance-Initialisierungskonfiguration

Wenn die Datei "/etc/sysconfig/applogic_init" vorhanden ist, liest das APK-Initialisierungsskript sie als "shell include"-Skript (mit dem Befehl "."). Die folgenden Parameter können in "/etc/sysconfig/applogic_init" definiert werden:

APK_AUTH_KEY_PATH

Speicherort, an dem der öffentliche Schlüssel für den SSH-Zugriff der Appliance gespeichert wird. Über den Befehl "3t comp shh" wird anhand des entsprechenden privaten Schlüssels eine Verbindung zu Appliances hergestellt. Der Standard ist "/root/.ssh". Wenn eine leere Zeichenfolge festgelegt wird, wird der Schlüssel nirgends gespeichert.
Wenn der angegebene Speicherort eine vorhandene Datei ist, werden der Eigentümer und die Berechtigungen beibehalten. Andernfalls wird die Datei mit "owner root" erstellt.

APK_CONFIG_FILES

Durch Leerzeichen getrennte Liste von Dateien, auf die Appliance-Eigenschaften angewendet werden. Dies ersetzt die angegebene Konfigurationsdateiliste im Dialogfeld "Begrenzung ändern" in der GUI (für Appliances, die nicht APK verwenden). Eine Appliance mit APK verwendet die Liste "APK_CONFIG_FILES", die sich in der Appliance selbst befindet, und nicht die in der GUI angegebene Liste.
Wichtig: Wenn APK auf einer vorhandenen Appliance installiert wird, müssen Sie im Klassen-Deskriptor (mithilfe der Editor-GUI) überprüfen, ob die Konfigurationsdateien vorhanden sind, die sich auf der Registerkarte "Konfigurationsdateien" im Dialogfeld "///Klasse anzeigen"/"Begrenzung ändern" befinden. Übertragen Sie die Liste der Dateien an die Einstellung "APK_CONFIG_FILES" in der Appliance.

 Wichtig! Die Datei "/etc/sysconfig/applogic_init" wird ausgeführt, bevor Konfigurationsdaten abgerufen oder angewandt werden. Daher kann sich das Skript nicht auf die Anwesenheit der Konfigurationsdateien der Appliance verlassen. Verwenden Sie diese Datei nicht dafür, Initialisierungscode auszuführen, sondern nur für die oben definierten Konfigurationsvariablen.

Beispiel "/etc/sysconfig/applogic_init":

APK_CONFIG_FILES=/etc/httpd/conf.d/myconfig.conf 
APK_AUTH_KEY_PATH=/root/.ssh/alternate_keys 
Appliance-Überprüfung nach dem Start

Wenn die Datei "/etc/sysconfig/applogic_appliance" vorhanden ist, liest das APK-Skript "late init" sie als Skript "shell include" (mit dem Befehl "."), nachdem alle Dienste auf der Appliance gestartet wurden. Der Rückgabestatus vom Skript zeigt an, ob die Appliance als richtig gestartet oder fehlgeschlagen betrachtet werden soll. Wenn das Skript eine Meldung in stderr druckt und einen Fehler zurückgibt, wird die Schlusszeile dieser Meldung als Fehlermeldung an den Controller gesandt.

Beispieldatei für die Überprüfung nach dem Start für eine Webserver-Appliance - überprüft, dass der Server läuft und auf "HTTP GET" an die Startseite reagiert:

if ! wget -q -O /dev/null http://localhost/ ; then
echo "start failed - Web server is not responding" >&2
return 1
fi
return 0

Wichtig! Einige Appliances im Systemkatalog verwenden ein angepasstes Skript in "/appliance", um Dienste zu initialisieren. Dies wird nicht mehr unterstützt. Dieses Verzeichnis wird gelöscht, wenn APK installiert wird, damit die Stammverzeichnisstruktur sauber und mit dem Dateisystem-Hierarchie-Standard kompatibel ist. Der Code aus solchen Skripten könnte zu "/etc/sysconfig/applogic_appliance" verschoben werden, um das alte Verhalten nachzuahmen. Dies ist jedoch nicht die Absicht der Datei für die Überprüfung nach dem Start und wird nicht empfohlen. Statt dessen muss ein installierter Dienst sein eigenes Initialisierungsskript haben und allgemein in der Lage sein, vollständig außerhalb von CA 3Tera AppLogic ausgeführt zu werden.