Verwalten mehrerer Linux-Server mit ClusterSSH

Wenn Sie ein Linux-Systemadministrator sind, haben Sie wahrscheinlich mehr als einen Computer, für den Sie täglich verantwortlich sind. Sie können sogar eine Bank von Maschinen, die Sie pflegen, die ähnlich sind — eine Farm von Web-Servern, zum Beispiel. Wenn Sie denselben Befehl auf mehreren Computern gleichzeitig eingeben müssen, können Sie sich bei jedem mit SSH anmelden und dies seriell tun, oder Sie sparen sich viel Zeit und Mühe und verwenden ein Tool wie ClusterSSH.

ClusterSSH ist ein Tk/Perl-Wrapper für Standard-Linux-Tools wie XTerm und SSH. Als solches läuft es auf fast jedem POSIX-kompatiblen Betriebssystem, auf dem die Bibliotheken vorhanden sind — ich habe es unter Linux, Solaris und Mac OS X ausgeführt. Es erfordert die Perl-Bibliotheken Tk (perl-tk unter Debian oder Ubuntu) und X11:: Protocol (libx11-protocol-perl unter Debian oder Ubuntu) zusätzlich zu xterm und OpenSSH.

Installation

Die Installation von ClusterSSH auf einem Debian— oder Ubuntu-System ist trivial – ein einfaches sudo apt-get install clusterssh installiert es und seine Abhängigkeiten. Es ist auch für die Verwendung mit Fedora gepackt und kann über das Ports-System unter FreeBSD installiert werden. Es gibt auch eine MacPorts-Version für Mac OS X, wenn Sie einen Apple-Computer verwenden. Natürlich kann es auch aus dem Quellcode kompiliert werden.

Konfiguration

ClusterSSH kann entweder über die globale Konfigurationsdatei /etc/clusters oder über eine Datei im Home—Verzeichnis des Benutzers mit dem Namen .csshrc konfiguriert werden. Ich neige dazu, die Konfiguration auf Benutzerebene zu bevorzugen, da mehrere Personen auf demselben System ihre Cluster und Clients nach Belieben einrichten können. Die Konfiguration ist in beiden Fällen unkompliziert, da das Dateiformat dasselbe ist. ClusterSSH definiert einen „Cluster“ als eine Gruppe von Maschinen, die Sie über eine Schnittstelle steuern möchten. In diesem Sinne listen Sie Ihre Cluster oben in der Datei in einem „Cluster“ -Block auf und beschreiben dann jeden Cluster in einem separaten Abschnitt unten.

Angenommen, ich habe zwei Cluster, die jeweils aus zwei Maschinen bestehen. „Cluster1“ enthält die Maschinen „Test1“ und „Test2“ und „Cluster2“ die Maschinen „Test3“ und „Test4“. Die Steuerdatei ~.csshrc (oder /etc/clusters) würde folgendermaßen aussehen:

clusters = cluster1 cluster2

cluster1 = test1 test2
cluster2 = test3 test4

Sie können auch Meta-Cluster erstellen — Cluster, die sich auf Cluster beziehen. Wenn Sie einen Cluster namens „all“ erstellen möchten, der alle Maschinen umfasst, können Sie ihn auf zwei Arten definieren. Zunächst können Sie einfach einen Cluster erstellen, der alle Maschinen enthält, wie folgt:

clusters = cluster1 cluster2 all

cluster1 = test1 test2
cluster2 = test3 test4
all = test1 test2 test3 test4

Meine bevorzugte Methode ist jedoch die Verwendung eines Meta-Clusters, der die anderen Cluster umfasst:

clusters = cluster1 cluster2 all

cluster1 = test1 test2
cluster2 = test3 test4
alle = cluster1 cluster2

Wenn Sie den Cluster „Alle“ als Cluster1 und cluster2 aufrufen, wird die Änderung automatisch erfasst, wenn sich einer dieser Cluster jemals ändert, sodass Sie die Definition „Alle“ nicht aktualisieren müssen. Dies spart Ihnen Zeit und Kopfschmerzen, wenn Ihre .die CSSHRC-Datei wird immer größer.

ClusterSSH verwenden

Die Verwendung von ClusterSSH ähnelt dem Starten von SSH selbst. Durch einfaches Ausführen von cssh -l <username> <clustername> werden ClusterSSH gestartet und Sie als gewünschter Benutzer in diesem Cluster angemeldet. In der Abbildung unten sehen Sie, dass ich mich als ich selbst bei „cluster1“ angemeldet habe. Das kleine Fenster mit der Bezeichnung „CSSH “ ist das Cluster-SSH-Konsolenfenster. Alles, was ich in dieses kleine Fenster eingebe, wird auf allen Computern im Cluster wiedergegeben — in diesem Fall auf den Computern „test1“ und „test2“. Zur Not können Sie sich auch bei Computern anmelden, die sich nicht in Ihrem befinden.csshrc-Datei, einfach durch Ausführen von cssh -l <username> <machinename1> <machinename2> <machinename3>.

Wenn ich etwas an eines der Terminals senden möchte, kann ich einfach den Fokus wechseln, indem ich auf das gewünschte XTerm klicke und dieses Fenster wie gewohnt eintippe. ClusterSSH hat ein paar Menüpunkte, die wirklich helfen, wenn Sie mit einer Mischung von Maschinen zu tun haben. Gemäß der folgenden Abbildung gibt es im Menü „Hosts“ der ClusterSSH-Konsole mehrere Optionen, die sich als nützlich erweisen.

„Retile Windows“ macht genau das, wenn Sie die Größe manuell geändert oder etwas verschoben haben. „Hosts oder Cluster hinzufügen“ eignet sich hervorragend, wenn Sie der laufenden ClusterSSH-Sitzung eine weitere Gruppe von Computern oder einen anderen Cluster hinzufügen möchten. Schließlich sehen Sie jeden Host unten im Menü „Hosts“ aufgelistet. Durch Aktivieren oder Deaktivieren der Kontrollkästchen neben jedem Hostnamen können Sie auswählen, an welche Hosts die ClusterSSH-Konsole Befehle ausgeben soll. Dies ist praktisch, wenn Sie einen oder zwei Hosts aus einem einmaligen oder bestimmten Grund ausschließen möchten. Die letzte Menüoption, die schön zu haben ist, befindet sich im Menü „Senden“ mit dem Namen „Hostname“. Dies gibt einfach den Hostnamen jedes Computers an die Befehlszeile zurück, was praktisch sein kann, wenn Sie in Ihrem Cluster etwas Hostspezifisches erstellen.

Vorbehalte mit ClusterSSH

Wie viele UNIX-Tools kann ClusterSSH schrecklich schief gehen, wenn Sie mit seiner Verwendung nicht sehr vorsichtig sind. Ich habe gesehen, wie Clustersshare eine ganze Reihe von Webservern entfernt hat, indem einfach ein Tippfehler in einer Apache-Konfiguration weitergegeben wurde. Der gleichzeitige Zugriff auf mehrere Maschinen, möglicherweise als privilegierter Benutzer, bedeutet, dass Fehler mit hohen Kosten verbunden sind. Seien Sie vorsichtig und überprüfen Sie, was Sie tun, bevor Sie die Eingabetaste drücken.

Fazit

ClusterSSH ist kein Ersatz für ein Konfigurationsmanagementsystem oder eine der anderen bewährten Methoden bei der Verwaltung einer Reihe von Computern. Wenn Sie jedoch etwas außerhalb Ihres üblichen Toolsets oder Prozesses tun müssen oder wenn Sie Prototyparbeit leisten, ist ClusterSSH unverzichtbar. Es kann viel Zeit sparen, wenn Aufgaben ausgeführt werden, die auf mehr als einer Maschine ausgeführt werden müssen, aber wie jedes Elektrowerkzeug kann es bei zufälliger Verwendung große Schäden verursachen.

You might also like

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.