SDB:KIWI Kochbuch eigene Cloud
Getestet mit openSUSE | Empfohlene Artikel | Verwandte Artikel | |||
|
Inhaltsverzeichnis
- 1 Schaffen Sie sich Ihre eigene Wolke
- 1.1 Den Haupt-Knoten erstellen
- 1.2 Erstellung des Wolken-Knotens
- 1.3 Einrichtung einer Wolken-Infrastruktur
- 1.4 Erstellung eines Wolken-Abbildes
- 1.5 Integration des Gast-Abbildes
- 1.6 Verwendung der Wolke
Schaffen Sie sich Ihre eigene Wolke
Dieses Beispiel wird Sie bei den Schritten bis zur Erstellung der Infrastruktur Ihrer eigenen Wolke führen. Das erfolgt auf der Grundlage von Eucalyptus. Das Beispiel führt Sie auf dem Weg zum Bau von 3 getrennten Abbildern, einem Haupt-Knoten-Abbild, einem Wolken-Knoten-Abbild und einem Gast-Abbild. Wenn die Abbilder erstellt sind, wird es etwa 10 Minuten dauern, Ihre eigene Wolke einzurichten und die Errichtung auf neuen Knoten kann in etwas weniger als 5 Minuten ausgeführt werden.
Wie bei der Kiwi-Version 4.25 enthält das Paket kiwi-doc das Beispiel der suse-euca-cloud im Verzeichnis /usr/share/doc/packages/kiwi/examples.
Wenn Sie Ihre Infrastruktur auf openSUSE 11.1 aufbauen benötigen Sie die Eucalyptus-Version 1.6.1. openSUSE 11.2 und höher können Eucalyptus 1.6.1 oder Eucalyptus 1.6.2. verwenden.
Den Haupt-Knoten erstellen
Erstellung der Haupt-Knoten-Konfiguration
Lassen Sie uns mit dem Kopieren des Beispiels, das vom Paket kiw-doc bereitgestellt wird, in ein Arbeitsverzeichnis beginnen. Für dieses Beispiel wird es das Arbeitsverzeichnis /tmp/cloud-setup sein.
Wenn Sie noch nicht Eucalyptus und Euca2ools tarballs heruntergeladen haben, dann machen Sie das nun und speichern sie unter /tmp/cloud-setup.
Dann wechseln Sie in unser Arbeitsverzeichnis und entpacken Sie die Eucalyptus-Pakete.
Mit den folgenden Schritten werden wir die Paketverzeichnisse, die während des Entpacken der "Teerkugeln" erzeugt wurden, zur Kiwi-Konfiguration als Repositorys hinzufügen. Bearbeiten Sie die Datei config.xml im Verzeichnis cloud-head-node. Ersetzen Sie den Eintrag PATH_TO_EUCALYPTUS_RPMS durch den Pfad zu den Eucalyptus rpms. In diesem Beispiel ist das der Pfad /tmp/cloud-setup/eucalyptus-1.6.2-opensuse-x86_64. Dann kopieren Sie die Paketquellenvereinbarung (repository declaration) erneut und weisen den Pfad zum Verzeichnis euca2ools-1.2-opensuse-x86_64. Wenn das vollbracht ist, sollten Sie die folgende Paketquellen-Konfiguration in config.xml haben.
<repository type="rpm-dir"> <source path="tmp/cloud-setup/eucalyptus-1.6.2-opensuse-x86_64"/> </repository> <repository type="rpm-dir"> <source path="tmp/cloud-setup/eucalyptus-1.6.2-opensuse-x86_64/eucalyptus-1.6.2-rpm-deps-x86_64"/> </repository> <repository type="rpm-dir"> <source path="tmp/cloud-setup/euca2ools-1.2-opensuse-x86_64"/> </repository>
Wenn Sie die neuesten openSUSE-Pakete einbeziehen wollen, fügen Sie das Update-Repository in die Datei config.xml ein. Das Hinzufügen der Aktualisierungs-Paketquelle hat die folgende Syntax:
<repository type="rpm-md"> <source path="http://download.opensuse.org/update/11.2/"/> </repository>
Das vervollständigt die Änderungen zu config.xml.
Wenn Sie ein 64 bit Abbild bauen, sind einige Änderungen in der Datei config.sh notwendig. Das 64 bit Paket euca2ools platziert erforderliche Python-Dateien eher in den 32 bit Baum als in den 64 bit Baum. Darum wird eine Verknüpfung erforderlich. Das wurde berichtet. Es wird erwartet, das das behoben wird in einer späteren Version das Pakets euca2ools. Nach dem Kommando suseConfig in config.sh fügen Sie die folgenden Einträge hinzu:
#====================================== # Problemumgehung für das zerstörte Paket euca2ools #-------------------------------------- ln -s /usr/lib/python2.6/site-packages/boto /usr/lib64/python.6/site-packages ln -s /usr/lib/python2.6/site-packages/euca2ools /usr/lib64/python.6/site-packages
Das vervollständigt die erforderlichen Änderungen zur Beispiel-Konfiguration.
Die Konfiguration ist eingerichtet, um ein OEM-Abbild im ISO-Format zu erstellen, z. B. ein sich selbst installierendes ISO-Abbild, das Sie auf eine CD brennen können. Wenn es von der CD gestartet ist, wird das Haupt-Knoten-Abbild sich selbst auf der Maschine, auf der Sie booten, installieren. Es ist ebenso sensibel, einen Haupt-Knoten in einer VM laufen zu lassen. Sie können den Typ des Abbildes in der Konfiguration ändern, wenn Sie wollen. Nun lassen Sie uns das Haupt-Knoten-Abbild bauen.
Bau des Haupt-Knoten-Abbildes
Nach dem Vorbereitungsschritt erstellen wir das Abbild.
Sie können das Abbild in einer virtuellen Umgebung testen. Mit Qemu auf einem 64 bit System funktioniert das wie folgt:
Erstellen Sie eine virtuelle Festplatte
Starten Sie das erstellte ISO
Das vervollständigt den Haupt-Knoten und Sie können das Abbild auf einer geeigneten Hardware installieren.
Erstellung des Wolken-Knotens
Erstelle die Konfiguration für den Wolken-Knoten
Bearbeiten Sie die Datei config.xml im Verzeichnis cloud-cloud-node mit Ihrem bevorzugten Editor. Wie bei der vorherigen Haupt-Knoten-Konfiguration, richten Sie Ihre Paketquellen ein (Sie könnten die konfigurierten Paketquellen-Elemente aus Ihrer Haupt-Knoten-Konfigurations-Datei kopieren).
Zur Wolken-Knoten-Konfiguration ist zu bemerken, dass das Abbild als ein Xen-Hypervisor eingerichtet ist, z. B. dom0, image. Das wird mit dem Element <xenconfig> und den Attributen bootprofile und bootkernel des Elements <type> ausgeführt.
<type image="oem" filesystem="ext4" boot="oemboot/suse-11.2" format="iso" bootprofile="xen" bootkernel="xenk"> ....... <xenconfig domain="dom0"/> </type>
Die Konfiguration für den Wolken-Knoten produziert ebenso ein OEM-Abbild im ISO-Format. Wenn Sie lieber ein Abbild erstellen wollen, dass sich selbst von einem USB-Stick installiert, können Sie einfach den Wert des format-Attributes des <type>-Elements von iso zu usb ändern. Das Ergebnis wird eine Datei .raw.install.raw sein. Verfrachten Sie dieses Abbild auf einen USB-Stick mit dem Kommando dd (vergessen Sie nicht, das Argument bs=32 zu verwenden).
Bau des Wolken-Knoten-Abbildes
Nun können Sie Ihr Wolken-Knoten-Abbild bauen.
Einrichtung einer Wolken-Infrastruktur
Sind die Haupt- und Wolken-Knoten-Abbilder komplett, können Sie diese auf geeigneter Hardware installieren. Folgen Sie den Instruktionen der Anleitung für Administratoren, um die Wolken-Infrastruktur zu konfigurieren.
Auf den Wolken-Knoten müssen Sie eine Netzwerk-Brücke erzeugen, um den Gast-Abbildern zu erlauben, sich mit dem Netzwerk zu verbinden. Sie können die Kommandozeile verwenden oder die Konfiguration mit einer netten GUI durchführen. Dazu verwenden Sie YaST.
Da die Wolken-Infrastruktur ohne Gast-Abbild ziemlich nutzlos ist, erklärt der nächste Schritt, wie die Gäste mit Eucalyptus zu registrieren sind.
Erstellung eines Wolken-Abbildes
Die Konfiguration des Wolken-Knotens ist so eingerichtet, dass er mit Xen arbeitet. Darum müssen unsere virtuellen Wolken-Maschinen als Xen-Gast-(domU)-Abbilder gebaut werden. Zur Demonstation wird hier das Xen-Gast-Beispiel, das von dem Paket kiwi-do unterstützt wird, hier verwendet.
Das Xen-Gast-Beispiel erstellt ein "ungepacktes" Xen-Abbild, das ermöglicht es, es in Eucalyptus aufzunehmen, wie unten erklärt wird.
Das Wolken-Gast-Abbild kann ebenso durch die Verwendung von SUSE Studio erzeugt werden. Mit Studio ist das Ergebnis ein gepacktes Xen-Gast-Abbild. Es benötigt etwas mehr Aufwand, um es in die Wolken-Infrastruktur zu integrieren. Diese Schritte sind unten ebenso dargestellt.
Integration des Gast-Abbildes
Vorbereitung des Gast-Abbildes für die Integration
Das Kiwi-Abbild
- Erstellen Sie ein Tar-Archiv Ihres Ergebnis-Verzeichnisses, z.B. /tmp/cloud-setup/cloud-guest-image.
- Kopieren/Verschieben Sie das Tar-Archiv in Ihren Eucalyptus-Haupt-Knoten in ein Verzeichnis Ihrer Wahl.
- Entpacken Sie das Tar-Archiv.
Ein SUSE Studio Abbild
- Laden Sie das Tar-Archiv von SUSE Studio herunter.
- Entpacken Sie das Tar-Archiv.
- Das Archiv enthält:
- Die Konfigurationsdatei, endet mit .xenconfig,
- Die Datei des Platten-Abbildes, endet mit .raw
- Das Archiv enthält:
- Extrahieren Sie den Kernel und die initrd aus dem Platten-Abbild wie folgt:
Bündelung und Hochladen
Jedes Eucalyptus-Maschinen-Abbild besteht aus drei Dateien:
- filesystem
- initial ramdisk (initrd)
- kernel
Jede dieser drei Abbild-Dateien muss gebündelt, hoch geladen und bei der Eucalyptus-Infrastruktur registriert werden. Das Bündeln, Hochladen und die Registrierung wird mit den folgenden Kommandos abgeschlossen:
- euca-bundle-image
- euca-upload-bundle
- euca-register
Detaillierte Informationen über diesen Prozess und die Kommandos können im Abschnitt Image Management des Eucalyptus Führers für Administratoren gefunden werden.
Bündelung und Hochladen der Initial Ramdisk
Verwendung des mit Kiwi erzeugten Gastes
Identifizieren Sie die Dateibezeichnung der initial ramdisk (initrd), indem Sie die Datei .xenconfig im Ergebnis-Verzeichnis überprüfen, cloud-guest-image/suse-11.2-xen-guest.x86_64-1.1.2.xenconfig in unserem Beispiel.
Verwendung des mit SUSE Studio erzeugten Gastes
Verwenden Sie die Datei initrd.vmx, die Sie kürzlich in ein Verzeichnis Ihrer Wahl kopiert haben.
- Erstellen Sie eine Manifest-Datei durch Bündelung der initrd-Datei
- Laden Sie das Bündel, das eine Behälter-Bezeichnung spezifiziert und das Manifest, das im vorangegangenen Schritt erzeugt wurde, hoch. Die Behälter-Bezeichnung ist eine Zeichenkette Ihrer Wahl.
- Registrieren Sie dieses im Wolken-Management-Rahmenwerk von Eucalyptus
- Notiere den Eucalyptus Ramdisk-Identifikator (eri-xxxxxx), der erzeugt wird.
Bündelung und Hochladen des Linux Kernels
Verwendung des von Kiwi erzeugten Gastes
Identifiziere die Dateibezeichnung des Kernels durch untersuchung der Datei .xenconfig im Ergebnis-Verzeichnis, cloud-guest-image/suse-11.2-xen-guest.x86_64-1.1.2.xenconfig in unserem Beispiel.
Verwendung eines mit SUSE Studio erzeugten Gastes
Verwenden Sie die Kernel-Datei, die Sie kürzlich in ein Verzeichnis Ihrer Wahl kopiert haben.
- Erstellen Sie eine Manifest-Datei durch Bündelung des Kernels
- Laden Sie das Bündel, das das gleich Behälter-Bezeichnung spezifiziert, das Sie für die initrd-Datei verwendet haben, hoch spezifizieren Sie die Manifest-Datei.
- Registrieren Sie dieses Abbild im Wolken-Management-Rahmenwerk von Eucalyptus
- Notiere den Eucalyptus Kernel-Identifikator (eki-xxxxxx), der erzeugt wird.
Bündelung und Hochladen des Dateisystems Root
Verwendung des mit Kiwi erstellten Gastes
Identifizieren Sie das Abbild des Dateisystems durch Untersuchung der Datei .xenconfig im Ergebnis-Verzeichnis, cloud-guest-image/suse-11.2-xen-guest.x86_64-1.1.2.xenconfig in unserem Beispiel.
Verwendung eines mit SUSE Studio erstellten Gastes
Verwenden Sie die .raw Darei, die Sie kürzlich in ein Verzeichnis Ihrer Wahl kopiert haben.
- Erstellen Sie eine Manifest-Datei, indem Sie das Dateisystem bündeln. Das erfordert die vorher notierten Identifier eri-xxxxxx und eki-xxxxxx.
- Laden Sie das Bündel hoch, das die gleiche Behälterbezeichnung angibt und vorher für initrd und kernel verwendet wurde, und spezifizieren Sie die Manifest-Datei
- Registrieren Sie dieses Abbild im Eucalyptus-Wolken-Management-Framework
- Notieren Sie sich den Identifikator des Eucalyptus-Machinen-Abbildes (EMI) (emi-xxxxxx)
Das vervollständigt die Bündelung, das Hochladen und den Registrierungsprozess. Das neu erstellte Abbild kann nun unter Verwendung des EMI-Identifikators vom Stapel laufen.
Verwendung der Wolke
- Start eines Gast-Abbildes
- Zeige die laufenden Instanzen:
- Zeige die verfügbaren Abbilder, Ramdisks und Kernel:
- Instanzen kündigen
- Finden Sie die Instanz ID (i-xxxxxx) entweder aus dem Startkommando der Lauf-Instanz oder den Euca-Beschreibungs-Instanzen: