Listing 3 definiert gleich zwei Aufgaben: Die erste namens »apacheinstallieren
«
installiert auf allen Servern den Webserver Apache (»install package
«
) und startet ihn (»service ... "start"
«
). Dabei ist es vollkommen egal, welche Linux-Distribution mit welchem Paketmanager auf dem Zielsystem läuft. Rex erkennt das System und spielt das Paket automatisch mit den korrekten Befehlen ein.
Listing 3
Rexfile zum Einrichten von Apache
Es gibt allerdings eine kleine Stolperfalle: Auf allen Zielsystemen muss das Paket mit dem Webserver »apache2
«
heißen. Kennt ein Paketmanager es etwa als »apache-2
«
, führt das zu einer Fehlermeldung. In heterogenen Netzwerkumgebungen kommt man daher meist doch nicht um mehrere Aufgaben für verschiedene Distributionen beziehungsweise Betriebssysteme herum.
Die zweite Aufgabe in Listing 3 namens »apache
«
aktiviert zunächst die zuvor definierte Aufgabe »apacheinstallieren
«
. Damit stellt sie sicher, dass der Webserver auf jeden Fall ordnungsgemäß installiert ist. Anschließend kopiert sie die Datei »/vorlagen/httpd.conf
«
auf jeden Server nach »/etc/apache2/httpd.conf
«
. Sofern sich die Konfigurationsdatei mittlerweile geändert hat (und wirklich nur dann), startet Rex Apache auf dem Server automatisch neu. Dafür sorgt das »on_change
«
.
Mit diesem Aufgaben-Duo genügt jetzt auf der Kommandozeile ein schlichtes:
rex -H "marvin" apache -p Root-Passwort
um auf dem Rechner »marvin
«
den Webserver Apache zu installieren und diesem auch gleich noch die angepasste Konfigurationsdatei »/vorlagen/httpd.conf
«
aufzudrücken. Nach dem gleichen Prinzip hält man auch die Konfigurationen aller anderen Rechner im Netzwerk auf dem aktuellen Stand.
Spätestens in Listing 3 dürfte Perl-Kennern so einiges vertraut vorkommen. Und tatsächlich ist ein Rexfile nichts anderes als ein Perl-Skript. Jeder Task ist eine Funktion, die man in anderen Tasks aufrufen kann – damit erklärt sich auch in Listing 3 der Aufruf »apacheinstallieren();
«
. Wer die Skriptsprache Perl noch nicht kennt, findet auf der Rex-Homepage eine schnelle Einführung [3]. Die dortigen Informationen reichen zum Schreiben von Rexfiles vollkommen aus, ein Perl-Experte muss man folglich nicht werden.