4 nützliche Tools zum Ausführen von Befehlen auf mehreren Linux-Servern
In diesem Artikel zeigen wir, wie Sie Befehle auf mehreren Linux-Servern gleichzeitig ausführen. Wir erklären, wie Sie einige der weithin bekannten Tools verwenden, mit denen sich wiederholende Befehlsreihen auf mehreren Servern gleichzeitig ausgeführt werden können. Dieses Handbuch ist nützlich für Systemadministratoren, die normalerweise täglich den Zustand mehrerer Linux-Server überprüfen müssen.
Für die Zwecke dieses Artikels gehen wir davon aus, dass Sie bereits SSH für den Zugriff auf alle Ihre Server eingerichtet haben. Zweitens ist es beim gleichzeitigen Zugriff auf mehrere Server angebracht, auf allen Ihren Linux-Servern schlüsselbasiertes, passwortloses SSH einzurichten. Dies erhöht vor allem die Serversicherheit und ermöglicht zudem einen einfachen Zugriff.
Lesen Sie auch: So konfigurieren Sie benutzerdefinierte SSH-Verbindungen, um den Fernzugriff zu vereinfachen
1. PSSH – Paralleles SSH
Parallel-SSH ist ein quelloffenes, schnelles und benutzerfreundliches befehlszeilenbasiertes Python-Toolkit zur parallelen Ausführung von SSH auf mehreren Linux-Systemen. Es enthält eine Reihe von Tools für verschiedene Zwecke wie parallel-ssh, parallel-scp, parallel-rsync, parallel-slurp und parallel-nuke (weitere Informationen finden Sie in der Manpage eines bestimmten Tools).
Um parallel-ssh zu installieren, müssen Sie zunächst PIP auf Ihrem Linux-System installieren.
$ sudo apt install python-pip python-setuptools #Debian/Ubuntu
yum install python-pip python-setuptools #RHEL/CentOS
dnf install python-pip python-setuptools #Fedora 22+
Installieren Sie dann parallel-ssh mit pip wie folgt.
$ sudo pip install parallel-ssh
Geben Sie als Nächstes die Hostnamen oder IP-Adressen des Remote-Linux-Servers mit SSH-Port in eine Datei namens hosts ein (Sie können ihr einen beliebigen Namen geben):
$ vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22
Speichern Sie die Datei und schließen Sie sie.
Führen Sie nun parallel-ssh aus, geben Sie die Hosts-Datei mit der Option -h
und einen oder mehrere Befehle an, die auf allen angegebenen Servern ausgeführt werden. Das Flag -i
bedeutet, dass Standardausgabe und Standardfehler angezeigt werden, wenn die Ausführung des Befehls auf jedem Server abgeschlossen ist.
$ parallel-ssh -h hosts "uptime; df -h"
Sie sollten sich auch Folgendes ansehen: So führen Sie mehrere Befehle auf mehreren Linux-Servern aus
2. Pdsh – Paralleles Remote-Shell-Dienstprogramm
Pdsh ist ein einfaches paralleles Open-Source-Remote-Shell-Tool zum Ausführen von Befehlen auf mehreren Linux-Servern gleichzeitig. Es verwendet ein verschiebbares Thread-Fenster, um Remote-Befehle auszuführen.
Um Pdsh auf Ihren Linux-Rechnern zu installieren, führen Sie den entsprechenden Befehl unten aus.
$ sudo apt install pdsh #Debian/Ubuntu
yum install pdsh #RHEL/CentOS
dnf install pdsh #Fedora 22+
Um Befehle auf mehreren Servern auszuführen, fügen Sie die Server wie zuvor erläutert einer Hosts-Datei hinzu. Führen Sie dann pdsh wie gezeigt aus; Das Flag -w
wird verwendet, um die Hosts-Datei anzugeben, und -R
wird verwendet, um das Remote-Befehlsmodul anzugeben (zu den verfügbaren Remote-Befehlsmodulen gehören ssh, rsh, exec usw.). Standard ist rsh).
Beachten Sie den ^
vor der Hosts-Datei.
$ pdsh -w ^hosts -R ssh "uptime; df -h"
Falls Sie nicht wie oben gezeigt einen Remote-Befehl angeben, der in der Befehlszeile ausgeführt werden soll, wird pdsh interaktiv ausgeführt, fordert Sie zur Eingabe von Befehlen auf und führt diese aus, wenn es mit einem Wagenrücklauf beendet wird. Weitere Informationen finden Sie auf der pdsh-Manpage:
$ man pdsh
3. ClusterSSH
ClusterSSH ist ein Befehlszeilentool zur gleichzeitigen Verwaltung von Clustern mehrerer Server. Es startet eine Verwaltungskonsole und ein xterm für alle angegebenen Server, sodass Sie auf allen denselben Befehl ausführen können.
Um clusterssh zu verwenden, installieren Sie es zunächst wie gezeigt auf Ihrem lokalen Linux-Computer.
$ sudo apt install clusterssh #Debian/Ubuntu
yum install clusterssh #RHEL/CentOS
sudo dnf install clusterssh #Fedora 22+
Nachdem Sie es nun installiert haben, öffnen Sie wie folgt gleichzeitig eine Admin-Konsole und ein xterm auf Remote-Servern. Um einen Befehl auf allen Servern auszuführen, klicken Sie in die xterm-Eingabeleiste und geben Sie Ihren Befehl ein. Um einen einzelnen Host zu verwalten, verwenden Sie dessen Admin-Konsole.
$ clusterssh linode cserver contabo
OR
clusterssh username@server1 username@server2 username@server3
Weitere Informationen finden Sie auf der Clusterssh-Manpage:
$ man clusterssh
4. Ansible
Ansible ist ein Open Source und beliebtes Tool zur Automatisierung von IT-Prozessen. Es wird zum Konfigurieren und Verwalten von Systemen, zum Bereitstellen von Anwendungen und vielem mehr verwendet.
Um Ansible auf Linux-Systemen zu installieren, führen Sie den entsprechenden Befehl unten aus:
$ sudo apt install ansible #Debian/Ubuntu
yum install ansible #RHEL/CentOS
sudo dnf install ansible #Fedora 22+
Sobald Sie ansible installiert haben, können Sie die Hostnamen oder IP-Adressen Ihres Servers in der Datei /etc/anasible/hosts hinzufügen.
$ sudo vim /etc/anasible/hosts
Geben Sie sie in Gruppen an, z. B. Webserver.
# Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
139.10.100.147
139.20.40.90
192.30.152.186
Speichern Sie die Datei und schließen Sie sie.
Um nun die Betriebszeit und die Benutzer zu überprüfen, die mit allen in der Gruppe Webserver angegebenen Servern in der Hosts-Konfigurationsdatei oben verbunden sind, führen Sie einfach das Ansible-Befehlszeilentool wie folgt aus.
Die Optionen -a
werden verwendet, um die Argumente anzugeben, die an das Modul übergeben werden sollen, und das Flag -u
gibt den Standard-Benutzernamen für die Verbindung mit den Remote-Servern an über SSH.
Beachten Sie, dass Sie mit dem Ansible-CLI-Tool höchstens einen Befehl ausführen können.
$ ansible webservers -a "w " -u admin
Das ist alles! In diesem Artikel haben wir erklärt, wie Sie mit weit verbreiteten Tools Befehle auf mehreren Remote-Linux-Servern gleichzeitig ausführen können. Wenn Sie Tools für denselben Zweck kennen, die wir in diesem Artikel nicht aufgeführt haben, teilen Sie uns dies über das Kommentarformular unten mit.