Inselverwaltung Von Thorsten Scherf
Total Page:16
File Type:pdf, Size:1020Kb
PRAXIS I Workshop Administration virtualisierter Infrastrukturen mit Archipel Inselverwaltung von Thorsten Scherf Virtuelle Maschinen-Instanzen laufen heutzutage auf einer Vielzahl unterschiedlicher Hypervisor-Systeme. Ein einheitliches Management-Tool ist notwendig, um den Zoo an virtuellen Systemen und deren Hosts im Überblick zu behalten und entsprechend zu verwalten. Mit Archipel steht nun ein recht neues Tool dieser Gattung zur Verfügung, das durch seine administrationsfreundliche Oberfläche besticht. Dieser Workshop stellt die Fähigkeiten des Management-Werkzeugs vor und zeigt dessen Inbetriebnahme. Quelle: pixelio.de eben dem Platzhirschen VMware eine ungesicherte wie auch mit TLS ge- zierung erfolgt wahlweise mittels eines N hat auch das Open Source-Umfeld schützte TCP-Verbindung übertragen. passenden SASL-Plug-Ins, beispielsweise viele sehr elegante und leistungsstarke Vir- Auch der Einsatz eines SSH-Tunnels ist Kerberos oder aber auch mit Hilfe von tualisierungswerkzeuge zu Tage gefördert. von Haus aus denkbar. Eine Authentifi- X.509-Zertifikaten. Die beiden Zugpferde sind hier sicherlich KVM (Kernel-based Virtual Machine) und XEN. Daneben existieren jedoch weitere Physikalische Architektur Lösungen wie beispielsweise VirtualBox, OpenVZ oder auch Linux-Container Physical Hypervisor Physical Hypervisor (LXC). Setzt ein Unternehmen nun un- Archipel Agent Archipel Agent terschiedliche Technologien ein, bedeutet dies im Umkehrschluss auch den Einsatz unterschiedlicher Management-Tools. Dass dies jedoch nicht zwangsläufig der Physical Hypervisor Physical Hypervisor Fall sein muss, ist spätestens seit Erscheinen des Virtualisierung-Frameworks libvirt be- Archipel Agent Archipel Agent kannt. Das Framework bringt diverse Trei- ber für den Zugriff auf die unterschied- lichsten Virtualisierungstechnologien von XMPP Hause aus mit [1] und gestattet somit ei- XMPP Server HTTP Server nen einheitlichen Zugriff auf virtuelle Maschinen unabhängig davon, auf wel- EJabberd Archipel GUI chem Hypervisor diese laufen. Als Management-Tools stehen für libvirt XMPP (bosh) HTTP / HTTPS auf der Kommandozeile virsh und virt- install zum Verwalten und Erzeugen von virtuellen Maschinen-Instanzen zur Ver- User computer User computer User computer fügung und mit virt-manager existiert ein grafisches Frontend. Die Tools müssen Safari / Webkit Safari / Webkit Safari / Webkit dabei nicht zwingend auf dem jeweiligen Hypervisor installiert sein und ein Re- mote-Zugriff ist ohne weiteres möglich. Um die Daten zwischen der Workstation und dem Hypervisor zu übertragen, exis- tieren diverse Möglichkeiten: So lässt sich Bild 1: Bei Archipel kommen diverse OpenSource-Komponenten zum Einsatz. Die zentrale Rolle spielt dabei ein beispielsweise der IP-Traffic sowohl über XMPP-Server, der für die Echtzeit-Kommunikation zwischen den einzelnen Komponenten verantwortlich ist. www.it-administrator.de August 2011 45 PRAXIS I Workshop Dank der großen Flexibilität von libvirt Komponente, die auf jedem Hypervisor- # /etc/ejabberd/ejabberd.cfg kommt es in diversen anderen Virtualisie- System zu installieren ist und als eine Art {loglevel, 4}. rungs-Projekten zum Einsatz, so beispiels- Bindeglied zwischen dem XMPP-Server {hosts, [“rawhide.tuxgeek.de”,”tuxgeek.de”, ”localhost”]}. weise in oVirt [2] oder aber auch in Archipel und dem libvirt-Framework des Hypervi- {listen, [3]. Archipel ersetzt dabei die etwas ange- sors dient. Der Agent selbst kommuniziert [ {5222, ejabberd_c2s, [ staubte GTK+-Oberfläche des virt-mana- gar nicht mit dem Hypervisor sondern {access, c2s}, {shaper, c2s_shaper}, gers durch eine schicke und modere Cap- überlässt diese Aufgabe libvirt. Somit ist ein {max_stanza_size, 65536} puccino-basierte Oberfläche und fügt Zugriff auf sämtliche Hypervisoren mög- ]}, {5269, ejabberd_s2s_in, [ weitere Features, die beispielsweise virt-ma- lich, die libvirt unterstützt. Der Archipel- {shaper, s2s_shaper}, nager nicht besitzt, hinzu. Dank des JavaS- Client ist dabei die Komponente, die – {max_stanza_size, 131072} ]}, cript-basierten Frameworks, erfolgt der Zu- meistens zusammen mit dem XMPP-Ser- {5280, ejabberd_http, [ griff auf Archipel über nahezu jeden ver – auf einem zentralen Management- captcha, http_bind, beliebigen Webbrowser – eine zusätzliche Server läuft und die jedem zugreifenden http_poll, web_admin Anwendung oder eine lokale libvirt-Instal- Client eine hübsche Weboberfläche prä- ]} lation sind dabei nicht notwendig. sentiert. Der komplette Client ist dabei in ]}. {auth_method, internal}. Javascript geschrieben und basiert auf dem {shaper, normal, {maxrate, 1000}}. XMPP-Server als zentrale Strophe.js-Framework. Archipel erzeugt {shaper, fast, {maxrate, 50000}}. {max_fsm_queue, 1000}. Architektur-Komponente zur Weiterverarbeitung Cappuchino-Ob- {acl, local, {user_regexp, “”}}. {access, max_user_sessions, [{10, all}]}. Archipel besteht aus mehreren Kompo- jekte. Diese lassen sich dann mit nahezu {access, max_user_offline_messages, [{5000, nenten die untereinander über das bekann- jedem beliebigen Javascript fähigen Web- admin}, {100, all}]}. {access, local, [{allow, local}]}. te XMPP-Protokoll (ehemals Jabber) kom- brower abrufen. Bild 1 zeigt die Architektur {access, c2s, [{deny, blocked}, munizieren. Die Zustellung von Nach- des Archipel-Frameworks. {allow, all}]}. {access, c2s_shaper, [{none, admin}, richten findet somit nahezu in Echtzeit {normal, all}]}. statt. Zentrale Komponente der gesamten {access, s2s_shaper, [{fast, all}]}. Installation {access, announce, [{allow, admin}]}. Architekur ist ein XMPP-Server der als Kommt der ejabberd-Server als XMPP- {access, configure, [{allow, admin}]}. {access, muc_admin, [{allow, admin}]}. eine Art Nachrichtenzentrale agiert. Die Komponente zum Einsatz, so ist darauf zu {access, muc_create, [{allow, local}]}. Archipel-Entwickler empfehlen den Ein- achten, dass dieser die beiden Module {access, muc, [{allow, all}]}. {access, pubsub_createnode, [{allow, local}]}. satz des ejabberd-Servers, jedoch sollte “mod_admin_extra” und “ejabberd_ {access, register, [{allow, all}]}. auch jeder andere XMPP-Server funktio- xmlrpc” enthält. Ist dies nicht der Fall, müs- {language, “en”}. {modules, nieren. Die ejabberd-Software ist Bestand- sen Sie diese manuell nachliefern. Hierzu [ {mod_adhoc, []}, teil sämtlicher Linux-Distributionen und verwenden Sie die Sourcen der ejabberd- {mod_caps, []}, lässt sich somit recht einfach über den je- Module und das Erlang-XMLRPC-Archiv {mod_disco, []}, {mod_irc, []}, weiligen Paket-Manager installieren. und übersetzen diese. Unter Umständen {mod_http_bind, []}, sind noch die Dateisystem-Pfade im Ma- {mod_last, []}, {mod_muc, [ Über die Download-Seite von Archipel [4] kefile anzupassen, dies hängt von der ein- {access, muc}, stehen dann die beiden Komponenten Ar- gesetzten Linux-Distribution ab. Die resul- {access_create, muc_create}, {access_persistent, muc_create}, chipel-Agent und Archipel-Client zur Ver- tierenden beam-Dateien gehören dann in {access_admin, muc_admin} ]}, fügung. Beim Agent handel es sich um die das ebin-Verzeichnis des ejabberd-Servers {mod_offline, [{access_max_user_messages, (Listing 1 und Listing 2). max_user_offline_messages}]}, {mod_ping, []}, cd /usr/local/src {mod_privacy, []}, wget http://ejabberd.jabber.ru/files/ Hat dies soweit funktioniert, müssen Sie {mod_private, []}, contributions/xmlrpc-1.13-ipr2.tgz {mod_pubsub, [ tar -xzf xmlrpc-1.13-ipr2.tgz schließlich noch die Konfigurationsdatei {access_createnode, pubsub_createnode}, cd xmlrpc-1.13/src {last_item_cache, false}, make des XMPP-Servers anpassen. Hierbei han- ]}, cp - a ebin/*.beam /usr/lib/ejabberd/ebin/ delt es sich um die Datei /etc/ejabberd/ejab- {mod_register, [ {welcome_message, {“Welcome!”, berd.cfg. Wichtig ist hierbei, dass Sie den Listing 1: Installation des “Hi.\nWelcome to this XMPP lokalen Rechnernamen und die zusätzlich server.”}}, ejabberd_xmlrpc Moduls {ip_access, [{allow, “127.0.0.0/8”}, installierten ejabberd-Module korrekt an- {deny, “0.0.0.0/0”}]}, {access, register} geben. Listing 3 zeigt eine beispielhafte ]}, cd /usr/local/src Konfiguration (die ejabberd Default-Kon- {mod_roster, []}, svn checkout http://svn.process-one.net/ {mod_shared_roster,[]}, ejabberd-modules/ figuration wollte in unserem Praxis-Test {mod_stats, []}, cd mod_admin_extra/trunk/ nicht mit Archipel zusammenarbeiten). {mod_time, []}, ./build.sh {mod_vcard, []}, cp ebin/mod_admin_extra.beam {mod_version, []} /usr/lib/ejabberd/ebin/ Der Aufruf von /etc/init.d/ejabberd start ak- ]}. Listing 2: Installation des tiviert schließlich den Server. Sollten Fehler Listing 3: Die Konfigurationsdatei ejabberd_xmlrpc Moduls auftreten, so finden Sie die entsprechenden des XMPP-Servers Logeinträge in der Datei /var/log/ejabberd/ 46 August 2011 Alle Listings zum Download auf www.it-administrator.de PRAXIS I Workshop nutzen Sie entweder den letzten Night- lyBuild oder den letzten StableBuild [4]. Noch einfacher gelingt die Installation über den zentralen Python Package Index (PyPi) – dies setzt jedoch eine Internet- Verbindung und das Paket python-setup- tools auf den Hypervisor-Systemen vo- raus. Über den Aufruf von easy_install archipel-agent installieren Sie dann den Ar- chipel-Agent auf dem lokalen System. In der Konfigurationsdatei /etc/archipel/ar- chipel.conf müssen Sie wieder darauf ach- ten, dass der richtige Rechnername für Bild 2: Nach der Installation des Management-Systems steht dieses für erste Zugriffe bereit den lokalen Hypervisor und den zentralen XMPP-Server zum Einsatz kommen. ejabberd.log. Um die