Website-Suche

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 den Zweck dieses Artikels gehen wir davon aus, dass Sie bereits SSH für den Zugriff auf alle Ihre Server eingerichtet haben und zweitens, wenn Sie gleichzeitig auf mehrere Server zugreifen, ist es 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.