Neben den bereits vorgestellten Aktionen bringt Rex noch viele weitere mit. Mit ihnen kann man unter anderem bequem an den Netzwerkeinstellungen schrauben, laufende Prozesse abschießen und sogar auf die Amazon Cloud zugreifen. Thematisch zusammengehörende Funktionen haben die Entwickler in Perl-Modulen zusammenfasst, von denen einige standardmäßig eingebunden sind. Hierzu zählt etwa der Dateiupload mit
»file
«
aus
Listing 3
. Andere, wie etwa die Funktionen zur Benutzerverwaltung, muss man erst noch per Hand einbinden.
Listing 4
zeigt dafür ein Beispiel.
Listing 4
Erstellen eines neuen Benutzerkontos
Zunächst bindet es das Modul
»Rex::Commands::User
«
ein und verrät (hier der Einfachheit halber) die Login-Daten für den Benutzer
»root
«
. Anschließend legt es auf allen entfernten Rechnern einen neuen Benutzer namens
»klaus
«
an. Dazu muss es lediglich die benötigen Informationen in einen Hash schieben. So gibt etwa die Zeile:
home => '/home/klaus',
den Namen des zukünftigen Heimatverzeichnisses an. Neben den Hash-Einträgen aus Listing 4 existieren noch weitere, darunter auch:
expire => '2012-11-30',
Eigentlich kann man damit die Gültigkeit des Nutzerkontos bis zu dem angegebenen Stichtag beschränken. In der zum Redaktionsschluss aktuellen Rex-Version führte die Angabe auf den Testsystemen jedoch reproduzierbar zu einem Fehler.
»create_user
«
legt einen neuen Nutzer an, analog löscht
»delete_user
«
einen solchen wieder:
delete_user "klaus", { delete_home => 1, };
»delete_home => 1,
«
bewirkt, dass auch das Home-Verzeichnis ins Nirwana wandert.
Die Aufgabe aus
Listing 4
ist auf den Benutzer
»klaus
«
festgenagelt und somit alles andere als flexibel. Viel praktischer wäre, wenn man der Aufgabe den Benutzernamen beim Aufruf übergeben könnte:
rex -H "marvin" neuernutzer --benutzername=klaus
Auch das ist kein Problem wie
Listing 5
beweist. Dort packt zunächst das
»my ($params) = @_;
«
sämtliche an
»rex
«
zusätzlich übergebenen Parameter in
»$params
«
. Der Wert des Parameters
»benutzername
«
steckt dann in
»$params->{,benutzername'}
«
.
Listing 5
übergibt ihn sinnvollerweise dem
»useradd
«
-Kommando, das wiederum das passende Benutzerkonto anlegt. Analog lassen sich beliebige weitere Parameter hinzufügen und abfragen. Diese Parameter müssen übrigens beim Aufruf von
»rex
«
diesmal zwingend hinter dem Task-Namen stehen (wie im obigen Beispiel).
Listing 5
Auswertung von Parametern
Wie
»useradd
«
benötigen manche Kommandos auf den entfernten Maschinen Root-Rechte. Dazu kann sich der Administrator wie in den hier vorgestellten Listings als
»root
«
anmelden. Einige Distributionen wie Ubuntu deaktivieren dessen Nutzerkonto jedoch. Daher kann
»rex
«
auf Wunsch auch jedes Kommando einer Task mit
»sudo
«
ausführen. Man muss dem Aufruf von
»rex
«
lediglich noch ein
»-s
«
anhängen, das notwendige Passwort übergibt
»-S
«
:
rex -H "marvin" -s -S 123456 neuernutzer --benutzername=klaus