Wyszukiwanie w witrynie

4 Przydatne narzędzia do uruchamiania poleceń na wielu serwerach Linux


W tym artykule pokażemy, jak uruchamiać polecenia na wielu serwerach Linux jednocześnie. Wyjaśnimy jak wykorzystać niektóre powszechnie znane narzędzia służące do wykonywania powtarzalnych serii poleceń na wielu serwerach jednocześnie. Ten przewodnik jest przydatny dla administratorów systemu, którzy zwykle muszą codziennie sprawdzać stan wielu serwerów Linux.

Na potrzeby tego artykułu zakładamy, że masz już skonfigurowany protokół SSH umożliwiający dostęp do wszystkich serwerów, a po drugie, w przypadku jednoczesnego uzyskiwania dostępu do wielu serwerów, wskazane jest skonfigurowanie protokołu SSH opartego na kluczach i bez hasła na wszystkich serwerach z systemem Linux. To przede wszystkim zwiększa bezpieczeństwo serwera, a także umożliwia łatwy dostęp.

Przeczytaj także: Jak skonfigurować niestandardowe połączenia SSH, aby uprościć dostęp zdalny

1. PSSH – Równoległy SSH

Parallel-SSH to szybki i łatwy w użyciu zestaw narzędzi Pythona oparty na wierszu poleceń o otwartym kodzie źródłowym, umożliwiający równoległe wykonywanie protokołu ssh w wielu systemach Linux. Zawiera szereg narzędzi do różnych celów, takich jak parallel-ssh, równoległy scp, parallel-rsync, parallel-slurp i parallel-nuke (przeczytaj stronę podręcznika konkretnego narzędzia, aby uzyskać więcej informacji).

Aby zainstalować parallel-ssh, musisz najpierw zainstalować PIP w swoim systemie Linux.

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+

Następnie zainstaluj parallel-ssh za pomocą pip w następujący sposób.

sudo pip install parallel-ssh

Następnie wprowadź nazwy hostów lub adresy IP zdalnego serwera Linux z portem SSH w pliku o nazwie hosts (możesz nadać mu dowolną nazwę):

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Zapisz plik i zamknij go.

Teraz uruchom parallel-ssh, określ plik hosts za pomocą opcji -h i polecenia, które zostaną wykonane na wszystkich określonych serwerach. Flaga -i oznacza wyświetlenie std wyjścia i std error po zakończeniu wykonywania polecenia na każdym serwerze.

parallel-ssh -h hosts "uptime; df -h"

Powinieneś także sprawdzić: Jak uruchamiać wiele poleceń na wielu serwerach z systemem Linux

2. Pdsh – narzędzie do równoległej zdalnej powłoki

Pdsh to proste, równoległe narzędzie zdalnej powłoki o otwartym kodzie źródłowym, umożliwiające jednoczesne wykonywanie poleceń na wielu serwerach Linux. Wykorzystuje przesuwane okno wątków do wykonywania zdalnych poleceń.

Aby zainstalować Pdsh na komputerach z systemem Linux, uruchom odpowiednie polecenie poniżej.

sudo apt install pdsh 	#Debian/Ubuntu 
yum install pdsh	        #RHEL/CentOS 
dnf install pdsh              #Fedora 22+

Aby uruchamiać polecenia na wielu serwerach, dodaj serwery do pliku hosts, jak wyjaśniono wcześniej. Następnie uruchom pdsh, jak pokazano; flaga -w służy do określenia pliku hosts, a flaga -R służy do określenia zdalnego modułu poleceń (dostępne moduły zdalnych poleceń obejmują ssh, rsh, exec, domyślnie jest to rsh).

Zwróć uwagę na ^ przed plikiem hosts.

pdsh -w ^hosts -R ssh "uptime; df -h"

Jeśli nie określisz polecenia zdalnego, które ma zostać wykonane w wierszu poleceń, jak pokazano powyżej, pdsh działa interaktywnie, pytając o polecenia i uruchamiając je po zakończeniu powrotu karetki. Aby uzyskać więcej informacji, zobacz stronę podręcznika pdsh:

man pdsh 

3. KlasterSSH

ClusterSSH to narzędzie wiersza poleceń służące do jednoczesnego administrowania klastrami wielu serwerów. Uruchamia konsolę administracyjną i xterm na wszystkich określonych serwerach, umożliwiając wykonanie na wszystkich tych samych poleceń.

Aby używać clusterssh, zacznij od zainstalowania go na lokalnym komputerze z systemem Linux, jak pokazano.

sudo apt install clusterssh    #Debian/Ubuntu 
yum install clusterssh         #RHEL/CentOS 
sudo dnf install clusterssh    #Fedora 22+

Teraz, gdy już go zainstalowałeś, otwórz jednocześnie konsolę administracyjną i xterm na zdalnych serwerach w następujący sposób. Aby uruchomić polecenie na wszystkich serwerach, kliknij pasek wprowadzania xterm i wpisz swoje polecenie; aby zarządzać pojedynczym hostem, użyj jego konsoli administracyjnej.

clusterssh linode cserver contabo
OR
clusterssh username@server1 username@server2 username@server3 

Aby uzyskać więcej informacji, zobacz stronę podręcznika klastrów:

man clusterssh

4. Ansible

Ansible to otwarte i popularne narzędzie do automatyzacji procesów IT. Służy do konfigurowania i zarządzania systemami, wdrażania aplikacji i wielu innych.

Aby zainstalować Ansible na systemach Linux, uruchom odpowiednie polecenie poniżej:

sudo apt install ansible       #Debian/Ubuntu 
yum install ansible            #RHEL/CentOS 
sudo dnf install ansible       #Fedora 22+

Po zainstalowaniu ansible możesz dodać nazwy hostów lub adresy IP swojego serwera w pliku /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Określ je w grupach, np. serwery internetowe.

Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
139.10.100.147
139.20.40.90
192.30.152.186

Zapisz plik i zamknij go.

Teraz, aby sprawdzić czas działania i użytkowników podłączonych do wszystkich serwerów określonych w grupie serwer WWW, w powyższym pliku konfiguracyjnym hostów, po prostu uruchom narzędzie wiersza poleceń ansible w następujący sposób.

Opcje -a służą do określenia argumentów przekazywanych do modułu, a flaga -u określa domyślną nazwę użytkownika do łączenia się ze zdalnymi serwerami przez SSH.

Należy pamiętać, że narzędzie ansible CLI pozwala na wykonanie maksymalnie tylko jednego polecenia.

ansible webservers -a "w " -u admin

To wszystko! W tym artykule wyjaśniliśmy, jak uruchamiać polecenia na wielu zdalnych serwerach Linux jednocześnie przy użyciu powszechnie używanych narzędzi. Jeśli znasz jakieś narzędzia służące do tego samego celu, a których nie uwzględniliśmy w tym artykule, daj nam znać za pomocą poniższego formularza komentarza.