Seine Leistungstärke spielt Func (siehe Abbildung 1 ) vor allem dann aus, wenn es darum geht, eine Vielzahl von Systemen zu verwalten. Hierzu können Sie auf die gewohnte Shell-Dateinamen-Expansion ("Globbing") zurückgreifen. Es ist allerdings darauf zu achten, das Dateinamensmuster in Hochkommas zu setzen.
Das folgende Beispiel fragt alle LDAP-Systeme aus der Domäne
»virt.tuxgeek.de
«
nach der eingesetzten Kernel- Version ab, ausgenommen sind Systeme die im Hostnamen den String
»slave
«
enthalten:
# func --exclude "*slave*" "*ldap*.virt.tuxgeek.de" show hardware kernelVersion ldap1-ms.virt.tuxgeek.de: 2.6.18-128.el5 ldap2-ms.virt.tuxgeek.de: 2.6.18-128.el5
Func bietet ebenfalls die Verwaltung von Maschinen über Gruppen an. Hierfür können Sie entweder die Datei
»/etc/func/groups
«
manuell editieren und die gewünschten Gruppen anlegen oder die Arbeit an Func übergeben. Das folgende Beispiel erzeugt die Gruppe LDAP-Server mit den beiden Hosts
»ldap1
«
und
»ldap2
«
, zeigt das Ergebnis an und kopiert schließlich die Datei
»/etc/hosts
«
auf alle Systeme der Gruppe (
Listing 4
).
Listing 4
LDAP-Verwaltung
Am interessantesten wird es,wenn man auf die API des Management-Tools zurückgreift. Grundsätzlich können Sie jede Methode, die Sie auf Kommandozeile aufrufen, ebenfalls als API-Funktion ansprechen. Entsprechende Bindings existieren beispielsweise für die Skriptsprache Python. Listing 5 zeigt ein sehr einfaches Beispiel, das auf allen Systemen der LDAP-Gruppe überprüft, ob der LDAP-Service dort aktiv ist oder nicht und im Fehlerfall den Service nachstartet:
Listing 5
Func-API
# python check-ldap.py ldap1.virt.tuxgeek.de LDAP-Server is UP ldap2.virt.tuxgeek.de LDAP-Server is DOWN - starting it up ldap2.virt.tuxgeek.de LDAP-Server is now UP
Wer beim Aufruf seines Editors direkt Spaß bekommen hat und nun eigene Module entwickeln möchte – kein Problem. Unter [3] findet sich eine recht ausführliche Anleitung, wie sich dies mithilfe von Python bewerkstelligen lässt.