4 herramientas útiles para ejecutar comandos en varios servidores Linux


En este artículo, mostraremos cómo ejecutar comandos en varios servidores Linux al mismo tiempo. Explicaremos cómo usar algunas de las herramientas ampliamente conocidas diseñadas para ejecutar series repetitivas de comandos en múltiples servidores simultáneamente. Esta guía es útil para los administradores de sistemas que, por lo general, tienen que comprobar el estado de varios servidores Linux todos los días.

Para el propósito de este artículo, asumimos que ya tiene la configuración de SSH para acceder a todos sus servidores y, en segundo lugar, cuando accede a varios servidores simultáneamente, es apropiado configurar SSH sin clave basada en clave en todos sus servidores Linux. Esto, sobre todo, mejora la seguridad del servidor y también facilita el acceso.

1. PSSH - SSH paralelo

Parallel-SSH es un conjunto de herramientas Python basado en línea de comandos de código abierto, rápido y fácil de usar para ejecutar ssh en paralelo en varios sistemas Linux. Contiene una serie de herramientas para varios propósitos, como parallel-ssh , parallel-scp, parallel-rsync , parallel-slurp y parallel-nuke (lea la página del manual de una herramienta en particular para obtener más información).

Para instalar parallel-ssh , primero debe instalar PIP en su 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+

Luego instale parallel-ssh utilizando pip de la siguiente manera.

$ sudo pip install parallel-ssh

A continuación, ingrese los nombres de host o direcciones IP del servidor remoto de Linux con el puerto SSH en un archivo llamado hosts (puede nombrarlo como quiera):

$ vim hosts

192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Guarde el archivo y ciérrelo.

Ahora ejecute parallel-ssh , especifique el archivo de hosts con la opción -h y un comando (s) que se ejecutarán en todos los servidores especificados. El indicador -i significa mostrar salida estándar y error estándar a medida que se completa la ejecución del comando en cada servidor.

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

También debe revisar: Cómo ejecutar varios comandos en varios servidores Linux

2. Pdsh - utilidad de shell remoto paralelo

Pdsh es una herramienta de shell remota, simple, de código abierto, para ejecutar comandos en varios servidores Linux al mismo tiempo. Emplea una ventana deslizante de hilos para ejecutar comandos remotos.

Para instalar Pdsh en sus máquinas Linux, ejecute el comando apropiado a continuación.

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

Para ejecutar comandos en varios servidores, agregue los servidores a un archivo de hosts como se explicó anteriormente. Luego ejecuta pdsh como se muestra; la bandera -w se usa para especificar el archivo de hosts, y -R se usa para especificar el módulo de comando remoto (los módulos de comando remoto disponibles incluyen ssh, rsh, exec, the el valor predeterminado es rsh).

Tome nota del ^ antes del archivo de hosts.

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

En caso de que no especifique que se ejecute un comando remoto en la línea de comandos como se muestra arriba, pdsh se ejecuta de manera interactiva, le solicita comandos y los ejecuta cuando termina con un retorno de carro. Para más información, vea la página del manual de pdsh:

$ man pdsh 

3. ClusterSSH

ClusterSSH es una herramienta de línea de comandos para administrar clústeres de múltiples servidores al mismo tiempo. Lanza una consola de administración y un xterm a todos los servidores especificados, permitiéndote ejecutar el mismo comando en todos ellos.

Para usar clusterssh , comience por instalarlo en su computadora Linux local como se muestra.

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

Ahora que lo tiene instalado, abra una consola de administración y un xterm en servidores remotos a la vez, de la siguiente manera. Para ejecutar un comando en todos los servidores, haga clic en la barra de entrada de xterm y escriba su comando; Para administrar un solo host, use su consola de administración.

$ clusterssh linode cserver contabo
OR
$ clusterssh [email protected] [email protected] [email protected] 

Para más información, vea la página del manual de clusterssh:

$ man clusterssh

4. Ansible

Ansible es una herramienta de código abierto y popular para automatizar los procesos de TI. Se utiliza para configurar y administrar sistemas, implementar aplicaciones y mucho más.

Para instalar Ansible en sistemas Linux, ejecute el comando apropiado a continuación:

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

Una vez que haya instalado ansible , puede agregar los nombres de host o direcciones IP del servidor en el archivo /etc/anasible/hosts .

$ sudo vim /etc/anasible/hosts

Especifíquelos en grupos, por ejemplo, servidores 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

Guarde el archivo y ciérrelo.

Ahora para comprobar el tiempo de actividad y los usuarios conectados a todos los servidores especificados en el grupo servidor web , en el archivo de configuración de hosts anterior, simplemente ejecute la herramienta de línea de comandos ansible de la siguiente manera.

Las opciones de -a se usan para especificar los argumentos para pasar al módulo y la bandera -u especifica el nombre de usuario predeterminado para conectarse a los servidores remotos a través de SSH.

Tenga en cuenta que la herramienta CLI ansible solo le permite ejecutar a lo sumo un solo comando.

$ ansible webservers -a "w " -u admin

¡Eso es todo! En este artículo, hemos explicado cómo ejecutar comandos en varios servidores remotos de Linux al mismo tiempo utilizando herramientas ampliamente utilizadas. Si conoce alguna herramienta por ahí con el mismo propósito, que no hemos incluido en este artículo, háganoslo saber a través del formulario de comentarios a continuación.

Todos los derechos reservados © Linux-Console.net • 2019-2021