Management virtueller Server mit Archipel

Rettungsinsel

Archipel hilft dem Administrator, Virtualisierungs-Umgebungen auf Basis von KVM, Open VZ, VMware, Xen, Virtualbox oder LXC in einem einzigen GUI zu verwalten. ADMIN testet die Beta-Version 3, die einen ersten Eindruck vom zentralen Virtualisierungs-Management der Zukunft verschafft.
Duell der Datenbanken: In einem Shootout messen sich MySQL und PostgreSQL. Der Schwerpunkt vom ADMIN 06/2011 überprüft, wer schneller ist und gibt einen ... (mehr)

Der Umfang an Virtualisierungs-Technologien hat anno 2011 ein beträchtliches Ausmaß angenommen. Lässt man die kommerziellen Akteure im Cloud-Business von VMware, Citrix und Red Hat mit ihren integrierten oder proprietären Verwaltungslösungen außen vor, besteht immer noch reichlich Bedarf, die nicht minder interessanten Betriebssystem-, Para- und Hardware-Virtualisierer LXC, Open VZ, VMware, Xen, Virtualbox und KVM unter eine gemeinsame Verwaltungsoberfläche zu bringen, woran Libvirt [1] einen maßgeblichen Anteil hat.

Das mit Spannung erwartete Archipel [2] von Antoine Mercadal basiert auf Libvirt und dem XMPP-Protokoll. Archipel unterstützt alle Virtualisierungstechnologien, für die Libvirt entsprechende Treiber bereithält. Aktuell sind das KVM/Qemu, Xen, Linux Containers (LXC), Open VZ, User Mode Linux (UML), VMware GSX/ESX, VMware Workstation/Player, Microsoft Hyper-V und seit einiger Zeit auch Virtualbox. Damit steht Archipel auch in Konkurrenz zu Red Hats Virtual Machine Manager (VMM) [3] und verschiedenen anderen GUIs für KVM/Qemu [4].

Red Hats eigene Enterprise-Virtualisierung (RHEV) basiert zwar ebenfalls auf KVM, enttäuschte Admins aber bis einschließlich der Version 2.2 dadurch, dass eine Administration unter Linux kaum sinnvoll möglich war, weil Red Hat auf Microsofts Management-Konsole setzt. Sogar der Einsatz des hauseigenen Virt-Managers scheitert am Einsatz zwar leistungsfähiger aber leider vollkommen neuer Technologien wie Spice. Immerhin verspricht die neue Version 3 mit integriertem Virtualization Manager als Java-Anwendung Besserung.

Vielfältig

Wer jedoch seine Virtualisierungs-Infrastruktur mit KVM, Xen oder VMware ESX/GSX betreibt oder ausschließlich Betriebssystem-Virtualisierung (Ressource Container) betreibt, dem steht mit Archipel in Kürze ein leistungsfähiges Werkzeug zur Verfügung. Ähnlich integrative Ansätze verfolgen die von ADMIN bereits vorgestellten Virtualisierungslösungen von Univention [5] und Proxmox [6]. Archipel befindet sich noch in einem frühen Entwicklungsstadium. Die aktuelle Beta-Version 3.2 von Archipel [7] vom Juli 2011 dient als Grundlage des Tests im Rahmen einer kleinen Installation.

Archipel bietet eine Weboberfläche zum Verwalten virtueller Maschinen und verwendet zur Kommunikation das XMPP-Protokoll und zum Verwalten virtuelle Maschinen die Libvirt. Damit ist Archipel in der Lage, heterogene Landschaften von virtuellen Maschinen zentral zu verwalten und zu überwachen, im Wortlaut der Archipel-Entwickler zu "orchestrieren". Archipel bereitet unter anderem die aktuellen Betriebsparameter der einzelnen VMs in Echtzeit grafisch auf. Libvirt ist eine freie C-Bibliothek, die über ein eigenes API eine einheitliche Schnittstelle zum Verwalten verschiedener Virtualisierungslösungen zur Verfügung stellt und zu deren Unterstützung eigene Treiber für KVM, Virtualbox, VMware, Xen, LXC, Open VZ und so weiter mitbringt.

Die Bibliothek fungiert mit ihrer API als Abstraktionsschicht zwischen Virtualisierungssoftware und Management-Werkzeugen. XMPP dürfte vielen Admins unter der Bezeichnung Jabber bekannt sein und versteht sich als "erweiterbares Nachrichten- und Anwesenheitsprotokoll". XMPP hält sich an den XML-Standard und kommt primär für Instant Messaging zum Einsatz, es gibt aber verschiedene XMPP-Erweiterungen. Jabber wird seit 1999 von Peter Saint-Andre entwickelt. Mit der Verabschiedung als IETF-Standard im Jahr 2004 wurde Jabber offiziell in XMPP (Extensible Messaging and Presence Protocol) umbenannt.

Die grafische Benutzeroberfläche von Archipel basiert auf dem Capuccino-Javascript-Framework [8], mit dem die Entwickler versuchen, das Look-and-Feel von Mac OS im Browser nachzubilden. Zur grafischen Fernsteuerung der virtuellen Maschinen dient auch bei Archipel das VNC-Framework, allerdings verzichtet Archipel vollständig auf Flash und Java und setzt am Webclient durchgängig auf Javascript. Außerdem ist Archipel modular aufgebaut und soll sich künftig auch durch ein SDK erweitern lassen.

Die aktuelle Beta-Version 3.2 steht unter [7] zum Download zur Verfügung. Wer es noch aktueller mag, kann sich die Nightly-Builds unter [9] zu Gemüte führen. Beide Quellen bieten Agents und Clients in Form kompletter Tar-Pakete zum schnellen Download an. Über die auf Github gehosteten Quellen kann der Admin optional auch direkt auf möglicherweise aktuellere Bestandteile des Archipel-Projektes zugreifen. Archipel ist unter der AGPL v3 lizensiert und damit frei verfügbar.

Architektur

Ein Archipel-Szenario ("Archipel Datacenter") besteht aus einem oder mehreren Hypervisor-Systemen (Xen, KVM, VMware), auf denen der sogenannte Archipel-Agent läuft, einem Jabber-Server (XMPP) als Kommunikationszentrale, dem Webserver zum Bereitstellen der GUI sowie den jeweiligen Clients. Alle Komponenten können auf einem physischen Host oder auch auf getrennten Maschinen laufen. Das Installieren aller Komponenten auf einer einzigen Maschine ist, außer eben zu Testzwecken, in der Regel wenig sinnvoll. In der Praxis sollte typischerweise ein KVM-, Xen, oder ESX-Hypervisor zum Einsatz kommen. In unserem Beispiel dient dieser gleichermaßen als Jabber- und Web-Server (Abbildung 1, Abbildung 2).

Abbildung 1: Die physische Archipel-Infrastruktur besteht aus dem oder den Archipel-Agenten, die auf dem jeweiligen Hypervisor laufen, einem zentralen XMPP-Server (Jabber), sowie einem Webserver, der die GUI für die anfragenden Browser-Clients zur Verfügung stellt.
Abbildung 2: Aus Sicht der Kommunikations-Infrastruktur steht der XMPP-Server im Zentrum der Architektur und kommuniziert via XMPP mit dem Hypervisor, den virtuellen Maschinen und den Benutzern.

Archipel ist größtenteils in Objective-J (60 Prozent) und Python (35 Prozent) geschrieben; lediglich der Client ist pures Javascript. Der Archipel-Agent läuft auf dem Hypervisor und besteht aus den Modulen Libvirt-Python (Abbildung 3), Archipel-Core und Xmpppy.

Abbildung 3: Der Python-Interpreter besitzt, sofern das Paket Python-Libvirt installiert ist, eine Schnittstelle zur Libvirt, die wiederum über den jeweiligen Treiber mit dem Hypervisor-Kernel kommuniziert.

Der Archipel-Client ist eine typische Webanwendung (Javascript), die im Browser auf dem Client-Rechner läuft. Die Installation von Archipel ist übrigens im englischsprachigen Wiki auf der Github-Seite gut dokumentiert. Der folgende Workshop fußt zum Teil auf der englischsprachigen Dokumentation. Wer Archipel aus den fertig geschnürten Paketen oder den Nightly-Builds installiert, sollte mit den folgenden Handreichungen gut zurechtkommen. Für das Beispiel haben wir Archipel auf einem aktuellen Kubuntu-System (11.04) mit KVM installiert, und zwar der Einfachheit wegen Agent, Client, Web- und Jabber-Server auf der gleichen Maschine, was in freier Wildbahn wohl eher die Ausnahme sein dürfte.

Die meisten der folgenden Schritte lassen sich problemlos auf andere aktuelle Debian-Systeme übertragen. Das Installieren von Archipel aus den Quellen ist aufwendiger, unter [13] aber ebenfalls gut dokumentiert. Ein Java Developement Kit (Sun JDK oder Open JDK) wird übrigens nur beim Installieren aus den Quellen benötigt und dort auch nur für die Cappuccino Build Tools. Der Admin kann das SDK später problemlos wieder entfernen. Archipel selbst braucht kein Java.

Das Installieren von Webserver und Client verursacht den geringsten Aufwand, denn der Client besteht nur aus Javascript-Code. Außerdem braucht er im Gegensatz zu den heute üblichen Webanwendungen weder ein Backend noch PHP, Java/Servlets oder irgendetwas anderes. Es genügt, das von [7] oder [9] heruntergeladene Archiv im gewünschten Vhost- oder Documentroot-Verzeichnis auf dem Webserver zu entpacken. Wir haben uns im Beispiel für den aktuellen Nightly-Build entschieden.

wget http://nightlies.archipelproject.org/latest-archipel-client.tar.gz
tar -vxf latest-archipel-client.tar.gz
sudo mv Archipel Pfad zum Webserver-Root

Ist der Webserver bereits konfiguriert und aktiv, steht das Archipel-Web-GUI sofort unter »http://Server/Archipel-Verzeichnis« zur Verfügung (Abbildung 4).

Abbildung 4: Das Web-GUI von Archipel wirkt modern und aufgeräumt. Dank purem Javascript setzt es auf Serverseite keine speziellen Frameworks voraus.

Für das Konfigurieren des Webservers, insbesondere dessen Sicherheitsmerkmale, ist der Admin allerdings selbst zuständig. Da der Archipel-Client kein Backend benötigt, ist es ratsam, den Empfehlungen der Archipel-Entwickler zu folgen und auf eine schwergewichtige Apache-Installation zugunsten von Lighttpd zu verzichten, der sich bei Ubuntu problemlos über das Paketmanagement installieren lässt.

sudo apt-get install lighttpd

Dessen Documentroot lässt sich in der Basis-Konfiguration unter »/etc/lighttpd/lighttpd.conf« nach Bedarf anpassen.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019