Welt-Traum. Nicht ohne Alternativen. Red-Hat-Linuxe mit Spacewalk administrieren und provisionieren

Please download to get full document.

View again

of 7
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Categories
Published
70 Red-Hat-Linuxe mit Spacewalk administrieren und provisionieren Welt-Traum Mit dem freien Management-Framework Spacewalk administrieren, konfigurieren und installieren Admins eine ganze Herde von Red-Hat-
70 Red-Hat-Linuxe mit Spacewalk administrieren und provisionieren Welt-Traum Mit dem freien Management-Framework Spacewalk administrieren, konfigurieren und installieren Admins eine ganze Herde von Red-Hat- oder anderen RPM-basierten Linux-Systemen. Spacewalk ist das Upstream-Projekt des Red Hat Network und belohnt eine komplizierte Installation mit vielen Funktionen. Toshaan Bharvani, Markus Feilner David Morrison, 123RF.com Zentral und per Mausklick verwalten Admins mit Red Hats Enterprise-Stack ihre Server. Neben dem Betriebssystem Red Hat Enterprise Linux (RHEL) und dem Virtualisierungsmanagement mit RHEV kommen die umfangreichen und teuren Funktionen von Red Hat Network (RHN, [1]) mit seinen Satellite-Servern und Proxys. Die bringen ein zentrales GUI, in dem Admins ihre Server mit Betriebssystemen, Patches, neuer Software oder Updates der Konfiguration versehen. Doch das hat seinen Preis, die Kosten für die kommerzielle Lizenz der Red-Hat- Landschaft erreichen schnell vier- oder gar fünfstellige Beträge. Spacewalk: Serververwaltung im Eigenbau Nicht nur deshalb erwächst Red Hat immer wieder Konkurrenz im eigenen Haus: Nach Centos, der freien RHEL-Alternative, hat jetzt auch das erst wenige Jahre alte Projekt Spacewalk [2] eine Umlaufbahn erreicht, die es für den Einsatz in Unternehmen interessant macht. Mit ihm verwaltet, konfiguriert, provisioniert und überwacht der Admin seine Linux-Server. Bare-Metal-Installationen, vollständige Rollbacks und das Management virtueller Systeme sind ebenfalls problemlos via Web-GUI möglich. Spacewalk ist nicht auf Centos oder RHEL beschränkt, es unterstützt auch Red-Hat-Derivate wie Fedora oder Scientific Linux [3]. Zwar haben sich die Spacewalk-Entwickler einem Open-Source-Pfad verschrieben, dieses Ziel aber noch nicht vollständig erreicht. Wie schon bei Red Hats Enterprise-Virtualisierung [4], für deren Administration proprietäre Software in Form eines Windows-Systems nötig ist, hat auch die freie Variante des RHN einen Makel: Sie erwartet zwingend eine Oracle-Datenbank. Für die ist zwar keine Investition in eine Lizenz notwendig, denn Oracle bietet eine kostenlose Version an, die Spacewalk auch vollkommen genügt. Aber verständlicherweise sind die Entwickler damit nicht zufrieden und es ist gut möglich, dass die jüngsten Entwicklungen rund um den Konzern den Wunsch nach einer freien Alternative durchaus beschleunigen. Untätig waren die Developer nicht: Noch in diesem Jahr ist wohl der vollständige PostgreSQL-Anschluss zu erwarten, der der Roadmap zufolge dann auch zügig Standardvorgabe werden soll. Das ist keineswegs purer Selbstzweck: Die Entwickler erhoffen sich einen deutlichen Schub, vor allem für die Akzeptanz bei ideologisch geprägten Anwendern. Die Oracle DB scheint diese Klientel abzuschrecken. Nicht ohne Alternativen Tabelle 1 zeigt die wichtigsten Funktionen, die Spacewalk übernimmt, und gibt für die einzelnen Komponenten bekannte Alternativen aus der Linux-Welt an. Das Geheimnis des Weltraumspaziergängers liegt jedoch in der gelungenen Integration der unterschiedlichen Komponenten. Die in Spalte drei der Tabelle 1 genannten Tools erfüllen ihren Zweck gut, die meisten sind De-facto-Standard in ihrem Bereich. Viele von ihnen folgen dem Unix- Dogma One job, one tool. Aber ein Admin, der die ganze Palette einsetzen will, muss sich meist langwierig einarbeiten und die Programme erst mal richtig konfigurieren. Hier springt Spacewalk in die Bresche und stellt ein zentrales Interface zur Verfügung. Es erlaubt dem Admin aber auch vom vorgegebenen Pfad abzuweichen und beispielsweise eines der gelisteten Werkzeuge (weiterhin) zu verwenden. Das kommt beispielsweise beim Konfigurationsmanagement häufiger vor als bei manch anderen Komponenten, nicht zuletzt weil Puppet ausgereift und stabil ist und über eine mittelgroße Anhängerschar verfügt. Ähnlich typisch ist es, dass ein Admin in Sachen Monitoring Nagios, vielleicht auch Zabbix, nicht ablösen will, weil er bereits viel Arbeit in deren Integration investiert hat. Apache, Java, Python, Perl Spacewalk verfolgt das klassische Dreischichtenmodell (Three-Tier, [5]) mit einem Datenlayer, einer Präsentationsebene und einer logischen Schicht. Den Layer bedient (noch) die Oracle-Datenbank, in ihr landen alle Anwendungsdaten. Der Zugriff erfolgt über die logische Schicht. Die wiederum besteht aus den bewährten Middleware-Paketen Apache und Tomcat, inklusive deren Perl-, Python-, Java-, und PL/ SQL-Fähigkeiten. Das erlaubt es Entwicklern, Admins und Devops [6], das API und den Präsentationslayer an die eigenen Bedürfnisse anzupassen. Das Web-GUI (Abbildungen 1 und 2) bindet sich mit Hilfe von Java und Perl an den logischen Layer von Tomcat und Apache an. Die Perl-Komponenten stammen aus dem Beginn der Spacewalk-Entwicklung, doch mit der Zeit trat immer mehr Java an ihre Stelle und ist mittlerweile Standard des weiteren Web-Developments. Clients und zentraler Server kommunizieren über das Jabber-Protokoll XMPP, wer will, kann sich aber auch über das XML/ RPC-API direkt mit dem Indianer- Kater-Gespann verbinden und verwendet dabei entweder Java oder Python. Die XML-RPC-Schnittstelle ist in zwei Instanzen aufgeteilt, ein Frontend und ein Backend. Letzteres verbindet sich mit Tomcat und versucht alle Optionen des Web-GUI via Java zur Verfügung zu stellen. Das Backend-XML/ RPC-API benutzt Python, um zum Beispiel Client-Utilities wie Yum, Up2date oder andere Kommandozeilen-Programme aufzurufen. Task-O-Matic Dazu kommen weitere, lose angebundene Features wie das in Java programmierte Task-O-Matic [7], das geplante Aufgaben Tabelle 1: Spacewalk-Funktionen und Alternativen Funktion Bemerkung Alternativen System Inventory Hard- und Software GPLi, Fusion Inventory Update-Management Softwarepatches Yum, Pulp Repository-Verwaltung Basissoftware und 3rd Party Yum, Pulp System Provisioning Kickstart von Systemen via Cobbler Puppet, Chef, Kickstart Konfigurationsmanagement Inklusive Rollback Puppet, Chef Monitoring Auf Software-Ebene Nagios, Zabbix Management virtueller Systeme KVM, Xen Libvirt, RHEV Abbildung 1: Nach der Anmeldung als Administrator bietet sich ein aufgeräumtes und übersichtliches Bild. In einer Art Dashboard finden sich Systeme, Events und kritische Fehler. Abbildung 2: Weiter unten im Dashboard zeigt sich der Überblick über durchgeführte Aktionen, von Spacewalk erkannte Security Events und die neuesten hinzugefügten Systeme. Spacewalk 04/2011 Sysadmin 71 72 Task-O-Matic Tomcat Frontend mit XML-RPC-API Datenbank (Oracle, bald auch PostgreSQL) Perl Apache Java Webinterface Python Backend mit XML-RPC-API XML-RPC-Client Browser OS-Client F Abbildung 3: Tomcat, Apache, Perl, Python und Tools wie Task- O-Matic ergeben die Three-Tier-Architektur von Spacewalk. Perl, Python und Java sind geeignet, um das API anzusprechen. Auch wenn Perl noch an vielen Stellen zu finden ist, arbeiten die Entwickler daran, Java als Spacewalk-Standard zu implementieren. (Tasks) asynchron und Ressourcen-schonend ablaufen lässt, ein Pluspunkt vor allem bei geplanten lange dauernden Jobs. Abbildung 3 gibt einen kleinen Überblick über die Spacewalk-Landschaft. Mit der ebenfalls eingebauten Suchmaschine finden Admins schneller Maschinen, Pakete oder Fehler. Passend zur Java-Natur verwendet Space walk die Lucene-Suchengine, um mehr und genauere Suchergebnisse zu erzeugen. Das Java-Design ähnelt dem bei Jboss üblichen Ansatz mit Apache Struts [8] als User Interface Framework, Session Beans [9] für die Business- Logik und dem relationalen Persistence Framework Hibernate [10] Wer sich durch die Installation (siehe Kasten Installation im Schnelldurchlauf ) gearbeitet hat, den belohnt der Browser mit dem Webinterface (siehe letzte Zeile in Listing 1), in dem er einen Admin-Account anlegt. Ausführlichere Hinweise zur Installation finden sich in der Onlinehilfe, der umfangreichen Dokumentation oder in einem Artikel des ADMIN-Magazins [12]. Um die ersten Clients anzubinden, muss der Administrator diese zunächst in der Zentrale registrieren. Auf einem RHEL 5 installiert er dazu den Spacewalk-Client samt den benötigten Utilities: Abbildung 4: Damit Spacewalk ein System verwalten kann, braucht es einen Aktivierungskey, den richtigen Channel und ein paar Softwarepakete. rpm Uvh 1.2/RHEL/5/Systemarchitektur/spacewalk-U client repo el5.noarch.rpm yum install rhn client tools rhn check U rhn setup rhnsd m2crypto yum rhn plugin Listing 1:»spacewalk setup disconnected«01 * Setting up Oracle environment. 02 * Setting up database. 03 ** Database: Setting up database connection. 04 DB User? $ spacewalk 05 DB Password? $ Passwort 06 DB SID? $ XE 07 DB hostname? $ localhost 08 DB port [1521]? $ Port 09 DB protocol [TCP]? $TCP/UDP 10 ** Database: Testing database connection. 11 ** Database: Populating database. 12 *** Progress: ############################### 13 * Setting up users and groups. 14 ** GPG: Initializing GPG and importing key. 15 ** GPG: Creating /root/.gnupg directory 16 You must enter an address. 17 Admin Address? $ -Adresse 18 * Performing initial configuration. 19 * Activating Spacewalk. 20 ** Loading Spacewalk Certificate. 21 ** Verifying certificate locally. 22 ** Activating Spacewalk. 23 * Enabling Monitoring. 24 * Configuring apache SSL virtual host. 25 Should setup configure apache's default ssl server for you (saves original ssl.conf) y/n? $ y 26 ** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf swsave 27 * Creating SSL certificates. 28 CA certificate password? 29 $ Passwort 30 Re enter CA certificate password? 31 $ CA-Passwort 32 Organization? $ Organisation 33 Organization Unit [ your.domain.tld]? $ Unit 34 Address $ 35 City? $ Stadt 36 State? $ Staat 37 Country code (Examples: US , JP , IN , or type ? to see a list)? $ Landescode 38 ** SSL: Generating CA certificate. 39 ** SSL: Deploying CA certificate. 40 ** SSL: Generating server certificate. 41 ** SSL: Storing SSL certificates. 42 * Deploying configuration files. 43 * Update configuration in database. 44 * Setting up Cobbler.. 45 Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services 46 (y/n, default = 'y')? $ y 47 * Restarting services. 48 Installation complete. 49 Visit https://your.domain.tld to create the Spacewalk administrator account. Das eigentliche Registrieren (Abbildung 4 zeigt die Schlüsselerzeugung im GUI) erledigt dann (gegebenenfalls mit der Option» force«): rhnreg_ks serverurl=http://spacewalk-u Server/XMLRPC activationkey=schlüssel_mitu _Channel_Name Die hierfür benötigten Channel enthalten alle Softwarepakete, die Spacewalk auf Anforderung (Poll) des Clients an diesen schicken soll (Push), der Admin verwaltet sie im Web-GUI (Abbildung 5). Bereits jetzt lassen sich Spacewalk-Ressourcen an Keys binden. Bei Problemen lohnt es sich zu checken, ob die Clients über das CA-Zertifikat des Servers verfügen. Channels Wer beispielsweise ein Centos-Enterprise-Linux der Version 5 mit Repository im Einsatz hat, richtet sich einen Sub- Channel für RPM Forge und einen für das EL-Repo ein. Diese Kanäle konfiguriert er wahlweise über das Web-GUI oder das Kommando»create_channel.py«[13]: Abbildung 5: In Spacewalk steuern Channels die Softwareverteilung. Es empfiehlt sich, für jede Distribution, die auf Clients landen soll, einen eigenen Kanal mit einer geeigneten Baumstruktur anzulegen. Spacewalk 04/2011 Sysadmin 73 create_channel.py label=centos5 i386 U name CentOS 5 32 bit summary 32 bit U CentOS 5 channel Ist ein Repository erst mal mit einem oder mehreren Channels verknüpft, muss der Admin das externe Repository noch mit dem lokalen Speicher synchronisieren und die Kanäle updaten. Das erledigt das Skript Reposync [14] mit: spacewalk repo sync channel Channel U Name type yum url URL_des_Online U Repository E Abbildung 6: Kickstart und Cobbler machen die Installation von Clientservern einfach. Anzeige 74 Wer eigene Pakete einbinden will (beim Paketbau das Signieren nicht vergessen), nutzt das Rhnpush-Kommando: rhnpush v u Admin Username p Admin-U Password channel=channel Name server=u Spacewalk URL dir=verzeichnis_mit_paketen Standardmäßig verwendet Spacewalk Kickstart-Files und das Installationswerkzeug Cobbler ([15], [16]), um Server initial zu konfigurieren. Dazu muss Installation im Schnelldurchlauf Die folgende Beschreibung zeigt eine typische Installation von Spacewalk 1.2 auf RHEL 5, sie funktioniert so auch auf Centos 5 oder Scientific Linux. 2 GByte RAM, 6 GByte Plattenplatz und mehr als 1 GByte Storage für die Oracle-DB sind Mindestvoraussetzung. Eine Java Virtual Machine ab Version ist ebenfalls nötig, hiervon darf auch nur eine Variante installiert sein. Pakete installieren Zunächst aktiviert der Administrator mit dem Kommando rpm Uvh architektur/spacewalk repo el5.noarch.rpm das Spacewalk-Repository. Den Client installiert: rpm ivh architektur/spacewalk client repo el5.noarch.rpm Die Pakete Cobbler-web und Task-O-Matic verursachen meist einen Abhängigkeitsfehler. Deshalb empfiehlt es sich, Cobbler-web mit»yum revome cobbler web«zu entfernen und der Exclude-Liste»/etc/yum.conf«einen passenden Eintrag hinzuzufügen. SE Linux Spacewalk mit SE Linux zu verbinden ist ebenfalls eine gute Idee. Nach der Installation der Pakete benötigt die Security-Suite keine Anpassungen und sollte out of the Box funktionieren. Allein Oracle verlangt ein wenig Starthilfe, aber mit einem Yum-Befehl kennt auch die Enterprise-Datenbank die richtigen Policies: yum y install oracle xe selinux oracle instantclient selinux U oracle instantclient sqlplus selinux ein Distributions-ISO-Image in»/var/ distro trees/distro Name Distro Version«gemountet sein, was»mount o loop«erledigt: mount o loop /var/iso images/distro NameU Distro Version Distro Architektur DVD.iso U /var/distro trees/distro Name Distro Version Jetzt fügt der Admin im Menü»Channels Manage Software Channels«die Distribution hinzu (Abbildung 6). Das geht, wie die meisten Spacewalk- Funktionen, auch an der Kommandozeile, hier mit Rhnpush: rhnpush server localhost u Admin U Username p Adminpassword channel Distro U Name Distro Version /var/distro trees/u Distro Name Distro Version/Pfad_zu_Paketen Der Download der Kickstart-Dateien ins Basisrepository kann beginnen, wenn die folgenden Softwarepakete vorliegen. (Die Libraries machen das Resolving leichter, bevor der Paketmanager ins Spiel kommt und mit yum y localinstall nogpgcheck oracle xe univ U Architektur.rpm yum y localinstall nogpgcheck oracle instantclient basic*.rpmu oracle instantclient sqlplus*.rpm yum y install oracle lib compat die heruntergeladenen Pakete installiert. Für Spacewalk reicht der Instantclient, das Skript»oracle_enc.sh«kann der Admin links liegen lassen.»/etc/init.d/oracle xe configure«initialisiert und konfiguriert die Datenbank, den lokalen Name Mapping Descriptor in»/etc/tnsnames.ora«setzt er auf den Localhost mit dem gewählten Port und sucht einen Servicenamen aus. Jetzt lässt sich die Oracle-Datenbank mit einem Clientkommando wie»sqlplus as sysdba«testen. Erfolgreich war die Prozedur, wenn die Ausgabe den folgenden Zeilen ähnelt: SQL*Plus: Release Production on Fri Apr 10 12:59: Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Enter password: $ Password Connected to: Oracle Database 10g Express Edition Release Production SQL Die folgenden SQL-Statements legen den Spacewalk-User an: SQL $ create user spacewalk identified by spacewalk defaultu tablespace users; SQL $ grant dba to spacewalk; SQL $ quit Wer seine Spacewalk-Daten nicht in»/var/satellite«vorhalten will, verwendet»semanage«, um den neuen Pfad in der SE-Linux-Datenbank bekannt zu machen, und»restorecon«, um die dortigen Daten erstmalig zu analysieren. Semanage muss auch aufrufen, wer das Orakel auf einem anderen Port lauschen lassen will, zum Beispiel mit»semanage port -a -t oracle_port_t -p tcp Portnummer«. Das Orakel Die proprietäre Oracle 10g Express gibt es als kostenlosen Download [11]. Hier sollte der Admin aufpassen, dass er die Version mit UTF-8-Unterstützung ausgewählt und eine Swap-Partition von mindestens 1 GByte eingerichtet hat. Ein Benutzer mit dem UID und eine Gruppe mit dem GID kleiner als 500 und dem Namen»oracle«sind ebenso nötig. In der Regel ist auch der Standardport zu ändern, weil der schon von Tomcat belegt ist. Die mit»yum y install bc libc.so.6 libaio.so.1«installierten Ein wenig Tuning ist nötig, weil die Datenbank per Default nur 40 Connections erlaubt, Spacewalk aber 400 empfiehlt: SQL $ alter system set processes = 400 scope=spfile; SQL $ alter system set _optimizer_filter_pred_pullup =false U scope=spfile; SQL $ alter system set _optimizer_cost_based_transformation =offu scope=spfile; SQL $ alter system set query_rewrite_enabled=true;»yum install spacewalk oracle«installiert schließlich den Weltraumspaziergänger mit Oracle-Support. Jetzt ist ein guter Zeitpunkt, in der Firewall die Ports 80, 443, 5222, 5269 und 69 zu öffnen, um Aktionen an Clients zu pushen (80 und 443) oder an Spacewalk zu übertragen (5222 und 5269), sowie für TFTP (69) via PXE. Mit einem korrekten FQDN startet»spacewalk setup disconnected«das Spacewalk Setup Tool (Listing 1). ersten drei finden sich im Standard-Repository von Fedora 11, sie landen in»/var/ distro trees/distro Name-Distro Version/ Pfad_zu_Tools/*rpm«): n Py Open SSL n Rhnlib n Libxml2-python n Spacewalk-koan Anschließend muss der Admin diesen Path noch einem Channel hinzufügen, entweder mit dem GUI oder per Rhnpush. Die eigentliche Kickstart-Distribution baut der Menü-Eintrag»Systems Kickstart Distributions«, wo der Anwender die Felder mit den Daten seines Basis-Repository ausfüllt und per Mausklick bestätigt. Wer so eine Kickstart-Distribution erfolgreich erstellt hat, checkt in seiner Liste noch deren Namenseintrag, das Default- Namensschema schreibt die Form»Spacewalk-Distribution-Tag:Organizations-ID: Name_der_Organisation«vor. Jetzt lässt sich in»systems Kickstart Profiles«ein neues Profil anlegen (Abbildung 7). Spacewalk kann nun ein System übers Netz via PXE-Boot, daher der nach der Installation in der Firewall zu öffnende TFTP-Port mit einem Betriebssystem versorgen und starten. Bestehende Systeme installiert dann beispielsweise das Kommando»koan --replace-self«neu,»cobbler profile list«zeigt die wartenden Profile [12]. Vollständig ist das Setup aber erst, wenn der Admin auch ans Sichern der jetzt zentral gespeicherten Systemdaten denkt. Im Fall von Spacewalk sollte er die Pfade aus Listing 2 in seine bestehende Backup- Lösung integrieren. Für die Oracle-Datenbank ist ein wenig mehr Arbeit nötig. Listing 3 zeigt die Befehle, die für Anmeldung, Anhalten, Restart und Dump der Datensätze notwendig sind. Ein Onlinebackup erledigt dieser Befehl: /usr/lib/oracle/xe/app/oracle/product/u /server/config/scripts/backup.sh Alle Backups schreibt Oracle gewöhnlich nach»/usr/lib/oracle/xe/app/oracle/ flash_recovery_area/xe/«. Spacewalk 04/2011 Sysadmin 75 Schwerelos: Spacewalk 1.3 Abbildung 7: Dank Kickstart sind unter Spacewalk auch Profile möglich, die das Vereinheitlichen von Systemen vereinfachen. Spacewalk hat Admins viel zu bieten, und wenn erst PostgreSQL als Back end werkelt, dürfte auch der Zuspruch GPLgeprägter Open-Source-Admins steigen. Die Abbildungen 8 und 9 zeigen einige der vielen Funktionen, die das Framework mitbringt, zum Beispiel die umfangreiche Paketsuche (Abbildung 8) oder das Gruppieren von Systemen, was etwa für Admins großer Webserver-Herden interessant ist. Sie können dann mit einem Mausklick alle Webserver im Verbund mit der neuesten Apache- oder CMS-Version versehen (Abbildung 9). Der System Set Manager hilft allerorts beim Verwalten großer Rechnerpools Listing 2: Pfade fürs Backup 01 /var/satellite 02 /var/lib/cobbler 03 /etc 04 /root/ssl build 05 /home/nocpulse 06 /var/lib/rhn/kickstarts Listing 3: Oracle-Backup Abbildung 8: Das Spacewalk-GUI erleichtert die Paketsuche. Hier findet der Admin ein Paket in den von ihm konfigurierten Chann
Similar documents
View more...
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks