4 Nyttige verktøy for å kjøre kommandoer på flere Linux-servere


I denne artikkelen vil vi vise hvordan du kjører kommandoer på flere Linux-servere samtidig. Vi vil forklare hvordan du bruker noen av de kjente verktøyene designet for å utføre repeterende rekker av kommandoer på flere servere samtidig. Denne veiledningen er nyttig for systemadministratorer som vanligvis må sjekke tilstanden til flere Linux-servere hver dag.

For formålet med denne artikkelen antar vi at du allerede har SSH-oppsett for å få tilgang til alle serverne dine, og for det andre, når du får tilgang til flere servere samtidig, er det hensiktsmessig å sette opp nøkkelbasert passordfri SSH på alle Linux-serverne dine. Dette forbedrer fremfor alt serversikkerheten og muliggjør også enkel tilgang.

Les også: Slik konfigurerer du tilpassede SSH-tilkoblinger for å forenkle fjerntilgang

1. PSSH – Parallell SSH

Parallel-SSH er en åpen kildekode, rask og brukervennlig kommandolinjebasert Python-verktøykasse for å utføre ssh parallelt på en rekke Linux-systemer. Den inneholder en rekke verktøy for ulike formål som parallel-ssh, parallell-scp, parallel-rsync, parallel-slurp og >parallel-nuke (les man-siden til et bestemt verktøy for mer informasjon).

For å installere parallel-ssh, må du først installere PIP på Linux-systemet.

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+

Installer deretter parallel-ssh ved å bruke pip som følger.

sudo pip install parallel-ssh

Deretter skriver du inn vertsnavnene eller IP-adressene til ekstern Linux-server med SSH-port i en fil som heter hosts (du kan navngi den hva du vil):

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Lagre filen og lukk den.

Kjør nå parallel-ssh, spesifiser vertsfilen ved å bruke -h-alternativet og en kommando(er) som vil bli utført på alle de spesifiserte serverne. -i-flagget betyr visning av std-utdata og std-feil når utføringen av kommandoen på hver server fullføres.

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

Du bør også sjekke ut: Slik kjører du flere kommandoer på flere Linux-servere

2. Pdsh – Parallell Remote Shell Utility

Pdsh er et åpen kildekode, enkelt parallelt eksternt skallverktøy for å utføre kommandoer på flere Linux-servere samtidig. Den bruker et skyvevindu med tråder for å utføre eksterne kommandoer.

For å installere Pdsh på Linux-maskinene dine, kjør den aktuelle kommandoen nedenfor.

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

For å kjøre kommandoer på flere servere, legg til serverne i en vertsfil som forklart tidligere. Kjør deretter pdsh som vist; flagget -w brukes til å spesifisere vertsfilen, og -R brukes til å spesifisere fjernkommandomodulen (tilgjengelige fjernkommandomoduler inkluderer ssh, rsh, exec, standard er rsh).

Legg merke til ^ før vertsfilen.

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

I tilfelle du ikke spesifiserer en ekstern kommando som skal utføres på kommandolinjen som vist ovenfor, kjører pdsh interaktivt, og ber deg om kommandoer og kjører dem når de avsluttes med en vognretur. For mer informasjon, se pdsh-man-siden:

man pdsh 

3. ClusterSSH

ClusterSSH er et kommandolinjeverktøy for å administrere klynger av flere servere samtidig. Den lanserer en administrasjonskonsoll og en xterm til alle spesifiserte servere slik at du kan kjøre den samme kommandoen på dem alle.

For å bruke clusterssh, start med å installere den på din lokale Linux-datamaskin som vist.

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

Nå som du har det installert, åpne en administrasjonskonsoll og en xterm på eksterne servere samtidig, som følger. For å kjøre en kommando på alle serverne, klikk i xterm-inndatalinjen og skriv inn kommandoen; for å administrere en enkelt vert, bruk dens administrasjonskonsoll.

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

For mer informasjon, se clusterssh-man-siden:

man clusterssh

4. Ansible

Ansible er et åpen kildekode og populært verktøy for å automatisere IT-prosesser. Den brukes til å konfigurere og administrere systemer, distribuere applikasjoner og mye mer.

For å installere Ansible på Linux-systemer, kjør den aktuelle kommandoen nedenfor:

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

Når du har installert ansible, kan du legge til serverens vertsnavn eller IP-adresser i filen /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Spesifiser dem i grupper, f.eks. netttjenere.

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

Lagre filen og lukk den.

Nå for å sjekke oppetiden og brukere som er koblet til alle serverne som er spesifisert i gruppen nettserver, i vertskonfigurasjonsfilen ovenfor, bare kjør det aktuelle kommandolinjeverktøyet som følger.

-a-alternativene brukes til å spesifisere argumentene som skal sendes til modulen, og -u-flagget spesifiserer standard brukernavn for å koble til de eksterne serverne via SSH.

Merk at det mulige CLI-verktøyet bare lar deg utføre maksimalt én kommando.

ansible webservers -a "w " -u admin

Det er alt! I denne artikkelen har vi forklart hvordan du kjører kommandoer på flere eksterne Linux-servere samtidig ved å bruke mye brukte verktøy. Hvis du vet om noen verktøy der ute for samme formål, som vi ikke har inkludert i denne artikkelen, gi oss beskjed via kommentarskjemaet nedenfor.