4 Tools zum gleichzeitigen Ausführen von Befehlen auf mehreren Linux-Servern

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 aus

2. 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 pdsh

Wenn 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 clusterssh

In 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 Tools

Zusammenfassung


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?

Source: https://habr.com/ru/post/de426849/


All Articles