Der Artikel, dessen Übersetzung wir heute veröffentlichen, widmet sich den Technologien der gleichzeitigen Ausführung von Befehlen auf mehreren Linux-Servern. Hier werden wir über einige bekannte Tools sprechen, die solche Funktionen implementieren. Dieses Material ist nützlich für Systemadministratoren, die beispielsweise regelmäßig den Status vieler Remote-Systeme überprüfen müssen. Es wird davon ausgegangen, dass der Reader bereits über mehrere Server verfügt, auf die der SSH-Zugriff organisiert ist. Wenn Sie mit mehreren Computern gleichzeitig arbeiten, ist es außerdem sehr nützlich, den SSH-Zugriff
per Schlüssel ohne Kennwort zu konfigurieren. Dieser Ansatz verbessert einerseits die Serversicherheit und erleichtert andererseits die Arbeit.

1. PSSH - Parallele SSH
PSSH ist ein in Python geschriebenes Open-Source-Befehlszeilen-Toolkit, mit dem SSH-Befehle auf vielen Linux-Systemen parallel ausgeführt werden können. Es funktioniert schnell und ist leicht zu erlernen. PSSH enthält Tools wie
parallel-ssh
,
Parallel-SCP ,
parallel-rsync
,
parallel-slurp
und
parallel-nuke
(Einzelheiten zu diesen Tools finden Sie unter man).
Bevor Sie
parallel-ssh
auf einem Linux-System installieren, müssen Sie zuerst
pip
installieren. So wird es in verschiedenen Distributionen gemacht:
$ 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+
Dann wird
parallel-ssh
mit
pip
installiert:
$ sudo pip install parallel-ssh
Als Nächstes müssen Sie die Hostnamen oder IP-Adressen der Remote-Linux-Server und die Portinformationen in die
hosts
eingeben (Sie können sie auch beliebig benennen). Hier brauchen wir diesen Befehl:
$ vim hosts
Hier ist ein Beispiel für den Inhalt einer solchen Datei:
192.168.0.10:22 192.168.0.11:22 192.168.0.12:22
Nachdem alles Notwendige in die Datei eingegeben wurde, ist es Zeit,
parallel-ssh
auszuführen und diesem Dienstprogramm den Dateinamen mit der Option
-h
sowie die Befehle zu übergeben, die auf allen Servern ausgeführt werden müssen, deren Adressen sich in der
hosts
. Das Flag
-i
des Dienstprogramms wird verwendet, um anzuzeigen, was nach Abschluss der Befehle auf den Servern in die Standardausgabe- und Fehlerströme gelangt.
Der Befehl
parallel-ssh
launch sieht möglicherweise folgendermaßen aus:
$ parallel-ssh -h hosts "uptime; df -h"
Die folgende Abbildung zeigt die Verwendung des Dienstprogramms bei der Arbeit mit drei Servern.
Das Dienstprogramm parallel-ssh führt Befehle auf mehreren Servern aus2. Pdsh - Parallel Remote Shell-Dienstprogramm
Pdsh ist wiederum eine Open-Source-Lösung, bei der Befehle auf mehreren Linux-Servern gleichzeitig ausgeführt werden.
So installieren Sie
pdsh
auf verschiedenen Distributionen:
$ sudo apt install pdsh #Debian/Ubuntu # yum install pdsh #RHEL/CentOS # dnf install pdsh #Fedora 22+
Um Befehle auf mehreren Servern ausführen zu können, müssen die Adressen dieser Server wie bei
parallel-ssh
zur Datei hinzugefügt werden, die auch als
hosts
. Dann müssen Sie
pdsh
in der folgenden Form
pdsh
:
$ pdsh -w ^hosts -R ssh "uptime; df -h"
Hier wird das Flag
-w
verwendet, um die Datei mit der Liste der Server anzugeben, das Flag
-R
wird verwendet, um das Remote-Befehlsmodul anzuzeigen (unter den verfügbaren Remote-Befehlsmodulen sind
ssh
,
rsh
,
exec
;
rsh
standardmäßig verwendet). Beachten Sie das Symbol
^
vor dem Dateinamen der Serverliste.
So sieht die Arbeit mit diesem Team aus.
Ausführen von Befehlen auf mehreren Servern mit pdshWenn Sie beim Aufruf von
pdsh
keine Liste von Befehlen angegeben haben, die auf den Servern ausgeführt werden müssen, wird dieses Dienstprogramm im interaktiven Modus gestartet. Details zu
pdsh
finden Sie auf der entsprechenden Manpage.
3. ClusterSSH
ClusterSSH ist ein Befehlszeilentool zum Verwalten von Serverclustern. Es startet die Administratorkonsole und für jeden Server ein separates
xterm
Fenster. Danach können alle diese Server gleichzeitig dieselben Befehle ausführen.
Installieren Sie
clusterssh
:
$ sudo apt install clusterssh #Debian/Ubuntu # yum install clusterssh #RHEL/CentOS $ sudo dnf install clusterssh #Fedora 22+
Um eine Verbindung zu den Servern herzustellen, müssen Sie einen Befehl der folgenden Form ausführen:
$ clusterssh linode cserver contabo
Sie können dieses Design verwenden:
$ clusterssh username@server1 username@server2 username@server3
Danach sehen Sie etwas Ähnliches wie in der folgenden Abbildung.
Arbeiten mit mehreren Servern mit clustersshIn der Administratorkonsole eingegebene Befehle werden auf allen Servern ausgeführt. Um Befehle auf einem separaten Server auszuführen, müssen Sie sie in ein dafür geöffnetes Fenster eingeben.
4. Ansible
Ansible ist ein beliebtes Open Source-Tool zur Automatisierung von IT-Prozessen. Es wird verwendet, um Systeme zu konfigurieren und zu verwalten, Anwendungen zu installieren und andere Probleme zu lösen.
ansible
installieren:
$ sudo apt install ansible #Debian/Ubuntu # yum install ansible #RHEL/CentOS $ sudo dnf install ansible #Fedora 22+
/etc/ansible/hosts
Sie danach die Adressen der Server zur Datei
/etc/ansible/hosts
.
$ sudo vim /etc/ansible/hosts
Hier ist ein Beispiel für ein Fragment einer ähnlichen Datei mit mehreren Systemen, die in der
webservers
Gruppe zusammengefasst sind:
# Ex 2: A collection of hosts belonging to the 'webservers' group [webservers] 139.10.100.147 139.20.40.90 192.30.152.186
Um die Informationen zu den
uptime
und herauszufinden, welche Benutzer mit den in der
webservers
Gruppe enthaltenen Hosts verbunden sind, können Sie die folgende Konstruktion verwenden:
$ ansible webservers -a "w " -u admin
Hier wird die Option
-a
verwendet, um die an das Modul übergebenen Argumente anzugeben, und mit dem Flag
-u
können Sie den Standardbenutzernamen angeben, der für die Verbindung zu Remoteservern über SSH verwendet wird.
Bitte beachten Sie, dass Sie über die
ansible
Befehlszeilenschnittstelle jeweils nur Befehle ausführen können.
Interaktion mit mehreren Servern mit ansible ToolsZusammenfassung
In diesem Artikel haben wir über Tools gesprochen, mit denen Befehle gleichzeitig auf mehreren Servern unter Linux ausgeführt werden können. Wenn Sie darüber nachdenken, die Aufgaben der Verwaltung mehrerer Server zu automatisieren, hoffen wir, dass Sie hier etwas finden, das zu Ihnen passt.
Liebe Leser! Kennen Sie nützliche Dienstprogramme, die die Verwaltung einer großen Anzahl von Servern vereinfachen?