Ricerca nel sito web

4 strumenti utili per eseguire comandi su più server Linux


In questo articolo mostreremo come eseguire comandi su più server Linux contemporaneamente. Spiegheremo come utilizzare alcuni degli strumenti ampiamente conosciuti progettati per eseguire serie ripetitive di comandi su più server contemporaneamente. Questa guida è utile per gli amministratori di sistema che solitamente devono verificare ogni giorno lo stato di salute di più server Linux.

Ai fini di questo articolo, presumiamo che tu abbia già una configurazione SSH per accedere a tutti i tuoi server e in secondo luogo, quando accedi a più server contemporaneamente, è opportuno configurare SSH senza password basato su chiave su tutti i tuoi server Linux. Ciò migliora soprattutto la sicurezza del server e consente anche un facile accesso.

Leggi anche: Come configurare connessioni SSH personalizzate per semplificare l'accesso remoto

1. PSSH – SSH parallelo

Parallel-SSH è un toolkit Python basato su riga di comando open source, veloce e facile da usare per l'esecuzione di ssh in parallelo su numerosi sistemi Linux. Contiene una serie di strumenti per vari scopi come parallel-ssh, parallel-scp, parallel-rsync, parallel-slurp e parallel-nuke (leggi la pagina man di uno strumento particolare per maggiori informazioni).

Per installare parallel-ssh, devi prima installare PIP sul tuo sistema 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+

Quindi installa parallel-ssh utilizzando pip come segue.

sudo pip install parallel-ssh

Successivamente, inserisci i nomi host o gli indirizzi IP del server Linux remoto con porta SSH in un file chiamato hosts (puoi nominarlo come preferisci):

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Salva il file e chiudilo.

Ora esegui parallel-ssh, specifica il file host utilizzando l'opzione -h e uno o più comandi che verranno eseguiti su tutti i server specificati. Il flag -i indica la visualizzazione dell'output std e dell'errore std al completamento dell'esecuzione del comando su ciascun server.

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

Dovresti anche controllare: Come eseguire più comandi su più server Linux

2. Pdsh – Utilità di shell remota parallela

Pdsh è un semplice strumento di shell remota parallela open source per l'esecuzione di comandi su più server Linux contemporaneamente. Impiega una finestra scorrevole di thread per eseguire comandi remoti.

Per installare Pdsh sulle tue macchine Linux, esegui il comando appropriato di seguito.

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

Per eseguire comandi su più server, aggiungere i server a un file host come spiegato in precedenza. Quindi esegui pdsh come mostrato; il flag -w viene utilizzato per specificare il file host e -R viene utilizzato per specificare il modulo di comando remoto (i moduli di comando remoto disponibili includono ssh, rsh, exec, il l'impostazione predefinita è rsh).

Prendi nota del ^ prima del file host.

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

Nel caso in cui non specifichi un comando remoto da eseguire sulla riga di comando come mostrato sopra, pdsh viene eseguito in modo interattivo, richiedendo comandi ed eseguendoli quando termina con un ritorno a capo. Per ulteriori informazioni, consultare la pagina man di pdsh:

man pdsh 

3. ClusterSSH

ClusterSSH è uno strumento da riga di comando per amministrare cluster di più server contemporaneamente. Lancia una console di amministrazione e un xterm su tutti i server specificati consentendoti di eseguire lo stesso comando su tutti.

Per utilizzare clusterssh, inizia installandolo sul tuo computer Linux locale come mostrato.

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

Ora che lo hai installato, apri contemporaneamente una console di amministrazione e un xterm sui server remoti, come segue. Per eseguire un comando su tutti i server, fai clic sulla barra di input xterm e digita il comando; per gestire un singolo host, utilizza la sua console di amministrazione.

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

Per ulteriori informazioni, consultare la pagina man di clusterssh:

man clusterssh

4. Ansible

Ansible è uno strumento open source e popolare per automatizzare i processi IT. Viene utilizzato per configurare e gestire sistemi, distribuire applicazioni e molto altro ancora.

Per installare Ansible su sistemi Linux, esegui il comando appropriato di seguito:

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

Dopo aver installato ansible, puoi aggiungere i nomi host o gli indirizzi IP del tuo server nel file /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Specificarli in gruppi, ad esempio server web.

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

Salva il file e chiudilo.

Ora per verificare il tempo di attività e gli utenti connessi a tutti i server specificati nel gruppo webserver, nel file di configurazione degli host sopra, esegui semplicemente lo strumento da riga di comando ansible come segue.

L'opzione -a viene utilizzata per specificare gli argomenti da passare al modulo e il flag -u specifica il nome utente predefinito per connettersi ai server remoti tramite SSH.

Tieni presente che lo strumento CLI ansible ti consente di eseguire al massimo un solo comando.

ansible webservers -a "w " -u admin

È tutto! In questo articolo, abbiamo spiegato come eseguire comandi su più server Linux remoti contemporaneamente utilizzando strumenti ampiamente utilizzati. Se sei a conoscenza di strumenti disponibili per lo stesso scopo, che non abbiamo incluso in questo articolo, faccelo sapere tramite il modulo di commento qui sotto.