Linux-Systeme mit Spacewalk verwalten

Mondlandung

Linux-Systeme von Hand zu verwalten ist ab einer bestimmten Größe der Systemlandschaft zeitaufwendig und oftmals auch nicht praktikabel. Mit dem Open-Source-Tool Spacewalk gibt es ein Tool, das dem Admin die Laufarbeit abnimmt.
Mit ausführlichen Workshops und Tipps unserer Autoren aus der Praxis sichern Sie Netzwerke und Server gegen Angriffe ab. ADMIN erklärt, wie man den eigenen ... (mehr)

Spacewalk [1] ist der Open-Source-Ableger des bekannten Red Hat Network Satellite Server von Red Hat. Dieser hat im Sommer 2008 die Quellen seiner Software freigegeben – mittlerweile liegt die Community-Version in der Version 1.0 vor. Zu den Kernaufgaben der Anwendung zählt neben der Bereitstellung neuer Software-Paketen in RPM-Form auch das Verwalten von Konfigurationsdateien und so genannter Kickstart-Trees. Hiermit ist eine Installation von Bare-Metal-Systemen problemlos möglich.

Die Funktionsweise ist dabei recht einfach. Damit ein System auf die Spacewalk-Ressourcen zugreifen kann, muss es sich zuerst auf dem Server registrieren. Hierfür kommt entweder eine Kombination aus Benutzernamen und Passwort zum Einsatz oder aber auch ein so genannter Aktivierungsschlüssel, der im Vorfeld auf dem Spacewalk-Server erzeugt wurde. Nach erfolgreicher Registrierung erscheint das System in der grafischen Weboberfläche der Servers.

Existieren bereits weitere Ressourcen auf dem Server, so können Sie diese nun dem System zuweisen. Dazu zählen beispielsweise Software-Pakete oder Konfigurationsdateien, die üblicherweise in Kanälen sortiert sind. Ein System besitzt immer genau einen Basis-Kanal mit optionalen Unterkanälen. Der Basis-Kanal enhält dabei das RPM-basierte Betriebssystem, beispielsweise Red Hat Enterprise Linux, Fedora oder Cent OS. In den Unterkanälen befinden sich zusätzliche vom Betriebssystem unabhängige Software-Pakete, beispielsweise die Red Hat Cluster Suite oder der 389 Directory Server. Spacewalk ist dabei auch in der Lage, bestehende Kanäle zu clonen oder komplett neu zu erzeugen. Somit haben Sie komplette Kontrolle über den Software-Stack, den Sie über Spacewalk anbieten. Mit Hilfe der Konfigurationskanäle verteilen Sie die entsprechenden Konfigurationsdateien für die Software-Pakete. Spacewalk hält dabei auch ältere Versionen der Dateien vor, sodass Sie zu einem beliebigen Zeitpunkt zu einer älteren Version einer Konfigurationsdatei zurückwechseln können (Rollback).

Die Installation der gewünschten Software-Pakete oder Konfigurationsdateien aus diesen Kanälen, erfolgt entweder vom Ziel-System aus oder aber auch zentral über die Spacewalk-Weboberfläche. Damit die Installation bei einer Vielzahl von Systemen nicht zur Qual wird, können Sie Ihre Systeme in logische Gruppen einsortieren und die Installation einer Ressource dabei auf diese Gruppe anwenden. Beispielsweise bietet es sich an, alle Webserver an die Spacewalk-Gruppe "WWW-Server" zu binden. Erscheint nun eine neue Version der Webserver-Software, so weisen Sie Spacewalk einfach an, das Update auf diese Gruppe anzuwenden. Alle Systeme die Mitglied der Gruppe sind erhalten das Software-Update somit automatisch.

Die Installation erfolgt dabei standardmäßig im Poll-Verfahren, das heißt, Client-Systeme fragen nach einem festgelegten Zeitintervall (default 4 Stunden) auf dem Server nach, ob nach der letzen Abfrage, neue Aktionen für das System definiert wurden. Ist dies der Fall, führt Spacewalk diese aus. Alternativ hierzu können Sie die Installation von Software-Paketen und andere Aktionen auch direkt im Push-Verfahren starten. Über das Jabber-Protokoll stehen Client-System und Spacewalk-Server ständig miteinander in Kontakt. Wenn Sie eine neue Aktion definieren, führt Spacewalk diese sofort auf dem Client aus.

Die Kommunikation erfolgt jedoch nach wie vor vom Client zum Server, das ist für entsprechende Zugriffsregeln auf der Firewall sehr wichtig. Eine Liste der freizuschaltenden Netzwerkports liefert [2] . Zu den angesprochenen Aktionen zählt übrigens nicht nur die Installation von Softwarepaketen oder Konfigurationsdateien, auch beliebige Kommandos lassen sich über den Spacewalk-Server auf den einzelnen Systemen ausführen. Haben Sie beispielsweise eine neue Konfigurationsdatei für den Webserver erstellt und auf das System verteilt, so ist natürlich ein Neustart der Webserver-Prozesse notwendig, damit sie die neuen Konfigurationsanweisungen einlesen. Anstatt sich nun also auf jedes einzelne System einzuloggen oder mit For-Schleifen zu arbeiten, um dann den gewünschten Restart-Befehl auf den Sytemen auszuführen, erfolgt die Anweisung einfach wieder über eine zentrale Stelle, den Spacewalk-Server.

Auch die Installation neuer Systemen gestaltet sich recht einfach. Spacewalk hält hierfür entsprechende Installationsdateien bereit, die so genannten Kickstart-Trees. Über ein Boot-Medium, beispielsweise eine CD, einen USB-Stick oder eine PXE-fähige Netzwerkkarte, stellen Sie dann den Kontakt zum Server her. Über welchen Server die Installation erfolgen soll, erfragt dabei der so genannte First-Stage Installer, der Teil des Installationsmedium ist.

Den Rest der Installation übernimmt dann der Second-Stage Installer, der sich auf dem Spacewalk-Server befindet und zu Beginn einer Installation auf das Client-System übertragen wird. Soll diese komplett automatisiert erfolgen, können Sie dem Bootmedium direkt den Speicherort einer Kickstart-Datei mit angeben. Das ist eine Art Antwort-Datei, die sämtliche Eigenschaften des zu installierenden Systems beschreibt, also beispielsweise Partitionierung, Software, Sprach- und Firewall-Einstellungen. Natürlich können Sie eine solche Kickstart-Datei auf dem Spacewalk-Server erstellen und dem Bootmedium den Link zur Datei mitteilen.

Spacewalk ist in der Lage jede RPM-basierte Distribution zu verwalten. Dabei besteht sogar die Möglichkeit, Client-Systeme in unterschiedlichen Organisationen zu betreiben. Über das Webinterface kann der Administrator diverse Organisationen erstellen und diesen eine bestimmte Anzahl von System-Entitlements zuzuweisen. Die Entitlements sind an ein Zertifikat gebunden, das Spacewalk bei der Installation automatisch generiert. Den einzelnen Organisationen lassen sich dann Benutzer hinzufügen.

Findet die Registrierung eines Clients nun mit einem Benutzeraccount aus einer bestimmten Organisation statt, so wird dieses System auch dieser Organisation zugewiesen. Meldet sich ein Benutzer aus der Organisation mit seinem Account über das Webinterface am Spacewalk-Server an, so sieht er auch nur die Systeme aus der eigenen Organisation. Das ist praktisch, wenn man mehrere Abteilungen betreut und die Systeme aus den einzelnen Abteilungen getrennt verwalten möchte. Man weist sie einfach unterschiedlichen Organisationen zu – diese sind natürlich im Vorfeld zu erzeugen.

Installation

Die Spacewalk Installation erfolgt wahlweise auf einem Red Hat Enterprise (RHEL) [3] , Fedora [4] oder CentOS [3] Linux. Beachten Sie bitte, dass Spacewalk eine aktuelle Java Runtime ab Version 1.6.0 benötigt. Hier bietet sich beispielsweise das quelloffene Open JDK an, das bereits Bestandteil von Fedora ist. Setzen Sie RHEL oder CentOS ein, so erhalten Sie über das zusätzliche Software-Repository EPEL (Extra Packages for Enterprise Linux) Zugang zu dem Paket. Neben dem Java-Paket gehört eine Oracle Datenbank 10g zum Pflichtumfang einer Spacewalk-Installation. Im einfachsten Fall steht mit Oracle XE eine kostenlose Version der Datenbank zur Verfügung. An der Unterstützung einer quelloffenen Datenbank arbeiten die Entwickler gerade mit Hochdruck. Hier hat sich PostgreSQL als beste Alternative zu Oracle herausgestellt. Wann genau die Unterstützung hierfür offiziell verfügbar ist steht momentan noch nicht fest, hier hilft ein regelmässiger Blick auf die aktuelle Roadmap [5] oder die entsprechenden Mailinglisten [6] weiter.

Oracle XE

Haben Sie das entsprechende Repository-RPM für Ihre Distribution installiert, geht es als erstes an die Installation von Oracle Express, das es kostenfrei unter [7] zum Download gibt. Wählen Sie hierbeit die Version 10.2.0.1 aus. Neben der Datenbank benötigen Sie auch die Pakete »oracle-instantclient-basic« und »oracle-instantclient-sqlplus« , die Sie anschließend mit Yum installieren:

yum localinstall --nogpgcheck oracle-↩
xe-univ*.rpm oracle-instantclient-basic*.↩
rpm oracle-instantclient-sqlplus*.rpm

Bevor es an die Konfiguration der Datenbank geht, sollten Sie sicherstellen, dass Ihr Rechnername in der Datei »/etc/hosts« auf die richtige IP-Adresse zeigt, sonst gibt es später Probleme mit der Oracle Listener-Konfiguration. Benutzen Sie die folgenden Parameter zur Konfiguration:

HTTP port for Oracle Application Express:↩
 9055
Database listener port: 1521
Password for SYS/SYSTEM: Password
Start at boot: y

Der Default-HTTP-Port für die Oracle Express Anwendung (8080) ist bereits durch den Applikationsserver Tomcat belegt, deswegen ist hier zwingend ein alternativer Port zu wählen, da es sonst zu Konflikten kommt.

Damit Sie sich auch mit der Datenbank unterhalten können, müssen Sie den Listener über die Datei »/etc/tnsnames.ora« konfigurieren ( Listing 1 ).

Listing 1

Oracle-Listener-Konfiguration

cat >> /etc/tnsnames.ora << 'EOF'
XE =
    (DESCRIPTION =
       (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
       )
       (CONNECT_DATA =
          (SERVICE_NAME = xe)
       )
    )
EOF

Abschließend bleiben noch ein paar Änderungen an der Datenbank durchzuführen. Hierfür melden Sie sich mit der Client-Anwendung »sqlplus« an der Datenbank an und legen als erstes den Benutzer »spacewalk« an, der im Beispiel das Passwort »spacewalk« zugewiesen bekommt ( Listing 2 ).

Listing 2

Benutzer spacewalk anlegen

sqlplus 'sys@xe as sysdba'
SQL> create user spacewalk identified by spacewalk default tablespace users;
SQL> grant dba to spacewalk;
SQL> quit

In der Standardkonfiguration lässt Oracle Express maximal 40 gleichzeitige Verbindungen zu, das ist für den Betrieb mit Spacewalk zu wenig. Die Anweisungen in Listing 3 erhöhen das Limit auf 400 mögliche Verbindungen.

Listing 3

Oracle-Tuning

sqlplus spacewalk/spacewalk@xe
SQL> alter system set processes = 400 scope=spfile;
SQL> alter system set "_optimizer_filter_pred_pullup"=false scope=spfile;
SQL> alter system set "_optimizer_cost_based_transformation"=off scope=spfile;
SQL> quit

Anschließend starten Sie mit »/sbin/service oracle-xe« restart die Datenbank neu.

Artikel als PDF herunterladen

Linux-Systeme mit Satellite verwalten 800,66 kB
comments powered by Disqus
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

Ausgabe /2023