Zoeken op website

4 Handige hulpmiddelen om opdrachten uit te voeren op meerdere Linux-servers


In dit artikel laten we zien hoe u opdrachten tegelijkertijd op meerdere Linux-servers kunt uitvoeren. We zullen uitleggen hoe u enkele van de algemeen bekende tools kunt gebruiken die zijn ontworpen om repetitieve reeksen opdrachten tegelijkertijd op meerdere servers uit te voeren. Deze handleiding is handig voor systeembeheerders die doorgaans elke dag de gezondheid van meerdere Linux-servers moeten controleren.

Voor de doeleinden van dit artikel gaan we ervan uit dat je al een SSH-configuratie hebt om toegang te krijgen tot al je servers. Ten tweede is het, als je tegelijkertijd toegang hebt tot meerdere servers, gepast om sleutelgebaseerde, wachtwoordloze SSH in te stellen op al je Linux-servers. Dit verbetert vooral de serverveiligheid en maakt ook de toegang gemakkelijk.

Lees ook: Hoe u aangepaste SSH-verbindingen configureert om externe toegang te vereenvoudigen

1. PSSH – Parallelle SSH

Parallel-SSH is een open source, snelle en eenvoudig te gebruiken, op de opdrachtregel gebaseerde Python-toolkit voor het parallel uitvoeren van ssh op een aantal Linux-systemen. Het bevat een aantal tools voor verschillende doeleinden, zoals parallel-ssh, parallel-scp, parallel-rsync, parallel-slurp en parallel-nuke (lees de manpagina van een bepaald hulpmiddel voor meer informatie).

Om parallel-ssh te installeren, moet je eerst PIP op je Linux-systeem installeren.

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+

Installeer vervolgens parallel-ssh met behulp van pip als volgt.

sudo pip install parallel-ssh

Voer vervolgens de hostnamen of IP-adressen van de externe Linux-server met SSH-poort in een bestand met de naam hosts (je kunt het elke gewenste naam geven):

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Sla het bestand op en sluit het.

Voer nu parallel-ssh uit, specificeer het hosts-bestand met de optie -h en een opdracht(en) die op alle gespecificeerde servers zal worden uitgevoerd. De vlag -i betekent dat std-uitvoer en std-fout worden weergegeven wanneer de uitvoering van de opdracht op elke server is voltooid.

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

Lees ook: Meerdere opdrachten uitvoeren op meerdere Linux-servers

2. Pdsh – Parallel Remote Shell-hulpprogramma

Pdsh is een open source, eenvoudige parallelle externe shell-tool voor het tegelijkertijd uitvoeren van opdrachten op meerdere Linux-servers. Het maakt gebruik van een schuifvenster met threads om opdrachten op afstand uit te voeren.

Om Pdsh op uw Linux-machines te installeren, voert u de juiste opdracht hieronder uit.

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

Om opdrachten op meerdere servers uit te voeren, voegt u de servers toe aan een hosts-bestand, zoals eerder uitgelegd. Voer vervolgens pdsh uit zoals weergegeven; de vlag -w wordt gebruikt om het hosts-bestand te specificeren, en -R wordt gebruikt om de externe commandomodule te specificeren (beschikbare externe commandomodules omvatten ssh, rsh, exec, de standaard is rsh).

Noteer de ^ vóór het hosts-bestand.

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

Als u geen opdracht op afstand opgeeft die moet worden uitgevoerd op de opdrachtregel, zoals hierboven weergegeven, wordt pdsh interactief uitgevoerd, waarbij u om opdrachten wordt gevraagd en deze worden uitgevoerd wanneer deze worden beëindigd met een harde return. Voor meer informatie, zie de pdsh-manpagina:

man pdsh 

3. ClusterSSH

ClusterSSH is een opdrachtregelprogramma voor het tegelijkertijd beheren van clusters van meerdere servers. Het lanceert een beheerconsole en een xterm voor alle gespecificeerde servers, waardoor u op allemaal dezelfde opdracht kunt uitvoeren.

Om clusterssh te gebruiken, installeert u het eerst op uw lokale Linux-computer, zoals weergegeven.

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

Nu je het hebt geïnstalleerd, open je als volgt tegelijk een beheerdersconsole en een xterm op externe servers. Om een opdracht op alle servers uit te voeren, klikt u in de xterm-invoerbalk en typt u uw opdracht; Als u één host wilt beheren, gebruikt u de beheerdersconsole ervan.

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

Zie de clusterssh man-pagina voor meer informatie:

man clusterssh

4. Ansibel

Ansible is een open source en populaire tool om IT-processen te automatiseren. Het wordt gebruikt voor het configureren en beheren van systemen, het implementeren van applicaties en nog veel meer.

Om Ansible op Linux-systemen te installeren, voert u hieronder de juiste opdracht uit:

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

Nadat u ansible heeft geïnstalleerd, kunt u de hostnamen of IP-adressen van uw server toevoegen aan het bestand /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Specificeer ze in groepen, bijvoorbeeld webservers.

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

Sla het bestand op en sluit het.

Om nu de uptime en gebruikers te controleren die zijn verbonden met alle servers die zijn opgegeven in de groep webserver, in het hosts-configuratiebestand hierboven, voert u eenvoudigweg het anible-opdrachtregelprogramma als volgt uit.

De -a opties worden gebruikt om de argumenten op te geven die moeten worden doorgegeven aan de module en de -u vlag specificeert de standaard gebruikersnaam om verbinding te maken met de externe servers via SSH.

Houd er rekening mee dat u met de anible CLI-tool slechts maximaal één opdracht kunt uitvoeren.

ansible webservers -a "w " -u admin

Dat is alles! In dit artikel hebben we uitgelegd hoe je opdrachten tegelijkertijd op meerdere externe Linux-servers kunt uitvoeren met behulp van veelgebruikte tools. Als u tools voor hetzelfde doel kent die we niet in dit artikel hebben opgenomen, kunt u ons dit laten weten via het onderstaande opmerkingenformulier.