Recherche de site Web

4 outils utiles pour exécuter des commandes sur plusieurs serveurs Linux


Dans cet article, nous montrerons comment exécuter des commandes sur plusieurs serveurs Linux en même temps. Nous expliquerons comment utiliser certains des outils les plus connus conçus pour exécuter simultanément des séries répétitives de commandes sur plusieurs serveurs. Ce guide est utile pour les administrateurs système qui doivent généralement vérifier quotidiennement la santé de plusieurs serveurs Linux.

Pour les besoins de cet article, nous supposons que vous disposez déjà d'une configuration SSH pour accéder à tous vos serveurs et, deuxièmement, lorsque vous accédez à plusieurs serveurs simultanément, il est approprié de configurer SSH sans mot de passe et basé sur une clé sur tous vos serveurs Linux. Cela améliore avant tout la sécurité du serveur et permet également une facilité d'accès.

Lire aussi : Comment configurer des connexions SSH personnalisées pour simplifier l'accès à distance

1. PSSH – SSH parallèle

Parallel-SSH est une boîte à outils Python open source, rapide et facile à utiliser, basée sur une ligne de commande, permettant d'exécuter ssh en parallèle sur un certain nombre de systèmes Linux. Il contient un certain nombre d'outils à des fins diverses, tels que parallel-ssh, parallel-scp, parallel-rsync, parallel-slurp et parallel-nuke (lisez la page de manuel d'un outil particulier pour plus d'informations).

Pour installer parallel-ssh, vous devez d'abord installer PIP sur votre système 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+

Ensuite, installez parallel-ssh en utilisant pip comme suit.

sudo pip install parallel-ssh

Ensuite, entrez les noms d'hôte ou les adresses IP du serveur Linux distant avec le port SSH dans un fichier appelé hosts (vous pouvez le nommer comme vous le souhaitez) :

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Enregistrez le fichier et fermez-le.

Exécutez maintenant parallel-ssh, spécifiez le fichier hosts à l'aide de l'option -h et une ou plusieurs commandes qui seront exécutées sur tous les serveurs spécifiés. L'indicateur -i signifie afficher la sortie std et l'erreur std à la fin de l'exécution de la commande sur chaque serveur.

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

Vous devriez également consulter : Comment exécuter plusieurs commandes sur plusieurs serveurs Linux

2. Pdsh – Utilitaire Shell distant parallèle

Pdsh est un outil shell distant parallèle simple et open source permettant d'exécuter des commandes sur plusieurs serveurs Linux en même temps. Il utilise une fenêtre coulissante de threads pour exécuter des commandes à distance.

Pour installer Pdsh sur vos machines Linux, exécutez la commande appropriée ci-dessous.

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

Pour exécuter des commandes sur plusieurs serveurs, ajoutez les serveurs à un fichier hosts comme expliqué précédemment. Ensuite, exécutez pdsh comme indiqué ; l'indicateur -w est utilisé pour spécifier le fichier hosts, et -R est utilisé pour spécifier le module de commande à distance (les modules de commande à distance disponibles incluent ssh, rsh, exec, le la valeur par défaut est rsh).

Prenez note du ^ avant le fichier hosts.

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

Si vous ne spécifiez pas de commande distante à exécuter sur la ligne de commande comme indiqué ci-dessus, pdsh s'exécute de manière interactive, vous demandant des commandes et les exécutant lorsqu'il se termine par un retour chariot. Pour plus d'informations, consultez la page de manuel pdsh :

man pdsh 

3. ClusterSSH

ClusterSSH est un outil de ligne de commande permettant d'administrer des clusters de plusieurs serveurs en même temps. Il lance une console d'administration et un xterm sur tous les serveurs spécifiés, vous permettant d'exécuter la même commande sur chacun d'eux.

Pour utiliser clusterssh, commencez par l'installer sur votre ordinateur Linux local, comme indiqué.

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

Maintenant que vous l'avez installé, ouvrez simultanément une console d'administration et un xterm sur les serveurs distants, comme suit. Pour exécuter une commande sur tous les serveurs, cliquez dans la barre de saisie xterm et tapez votre commande ; pour gérer un seul hôte, utilisez sa console d'administration.

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

Pour plus d'informations, consultez la page de manuel clusterssh :

man clusterssh

4.Ansible

Ansible est un outil open source et populaire pour automatiser les processus informatiques. Il est utilisé pour configurer et gérer les systèmes, déployer des applications et bien plus encore.

Pour installer Ansible sur les systèmes Linux, exécutez la commande appropriée ci-dessous :

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

Une fois que vous avez installé ansible, vous pouvez ajouter les noms d'hôte ou les adresses IP de votre serveur dans le fichier /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Spécifiez-les en groupes, par exemple serveurs 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

Enregistrez le fichier et fermez-le.

Maintenant, pour vérifier la temps de disponibilité et les utilisateurs connectés à tous les serveurs spécifiés dans le groupe webserver, dans le fichier de configuration des hôtes ci-dessus, exécutez simplement l'outil de ligne de commande ansible comme suit.

L'option -a est utilisée pour spécifier les arguments à transmettre au module et l'indicateur -u spécifie le nom d'utilisateur par défaut pour se connecter aux serveurs distants. via SSH.

Notez que l'outil ansible CLI vous permet uniquement d'exécuter au plus une seule commande.

ansible webservers -a "w " -u admin

C'est tout! Dans cet article, nous avons expliqué comment exécuter des commandes sur plusieurs serveurs Linux distants en même temps à l'aide d'outils largement utilisés. Si vous connaissez des outils dans le même but, que nous n'avons pas inclus dans cet article, faites-le nous savoir via le formulaire de commentaires ci-dessous.