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.