Vorheriges Thema: Appliance-Kit-Installation für Ubuntu-Linux-Distributionen

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 Linux-Versionen von APK unterstützen einen HVM-Start für VMWare und XEN-Hypervisoren. Der von CA AppLogic mitgelieferte PVM-Kernel ist optional.

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 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 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 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 den DomU-Kernel und das APK-Binärarchiv im 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 die Bereitstellung des Images auf, und importieren Sie es in den CA 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

Gibt den Speicherort an, 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_EXTIFC

Aktiviert die automatische IP-Konfiguration von externen Schnittstellen, sofern in der Anwendung angegeben. Legen Sie für diesen Wert no fest, um die IP-Konfiguration von externen Schnittstellen zu deaktivieren. Dieser Wert sorgt dafür, dass APK wie in der Vorgängerversion funktioniert, in der die Konfiguration externer Schnittstellen nicht unterstützt wurde.

Standard: Yes

Wichtig! Legen Sie APK_CONFIG_EXTIFC=no fest, wenn Sie den neuen CA AppLogic 3.5-APK in einer Appliance mit einer externen Schnittstelle installiert haben, die für die Verwendung auf einem Grid vor Version 3.5 vorgesehen ist. Diese Appliances verwenden Eigenschaften, um das externe Netzwerk zu konfigurieren. Diese Einstellung hat keine Auswirkung für Appliances ohne externe Schnittstellen.

APK_CONFIG_FILES

Gibt die durch Leerzeichen getrennte Liste von Dateien an, 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. Eine Warnung wird angezeigt, 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 AppLogic ausgeführt zu werden.