Pesquisa de site

4 ferramentas úteis para executar comandos em vários servidores Linux


Neste artigo, mostraremos como executar comandos em vários servidores Linux ao mesmo tempo. Explicaremos como usar algumas das ferramentas amplamente conhecidas projetadas para executar séries repetitivas de comandos em vários servidores simultaneamente. Este guia é útil para administradores de sistema que geralmente precisam verificar a integridade de vários servidores Linux todos os dias.

Para os fins deste artigo, presumimos que você já tenha SSH configurado para acessar todos os seus servidores e, em segundo lugar, ao acessar vários servidores simultaneamente, é apropriado configurar o SSH sem senha baseado em chave em todos os seus servidores Linux. Acima de tudo, isso aumenta a segurança do servidor e também permite facilidade de acesso.

Leia também: Como configurar conexões SSH personalizadas para simplificar o acesso remoto

1. PSSH – SSH paralelo

Parallel-SSH é um kit de ferramentas Python baseado em linha de comando de código aberto, rápido e fácil de usar para executar ssh em paralelo em vários sistemas Linux. Ele contém diversas ferramentas para diversos fins, como parallel-ssh, paralelo-scp, parallel-rsync, parallel-slurp e parallel-nuke (leia a página de manual de uma ferramenta específica para obter mais informações).

Para instalar o parallel-ssh, você precisa primeiro instalar o PIP em seu 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+

Em seguida, instale parallel-ssh usando pip da seguinte maneira.

sudo pip install parallel-ssh

Em seguida, insira os nomes de host ou endereços IP do servidor Linux remoto com porta SSH em um arquivo chamado hosts (você pode nomeá-lo como quiser):

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

Salve o arquivo e feche-o.

Agora execute parallel-ssh, especifique o arquivo hosts usando a opção -h e um(s) comando(s) que serão executados em todos os servidores especificados. O sinalizador -i significa exibir saída padrão e erro padrão conforme a execução do comando em cada servidor é concluída.

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

Você também deve verificar: Como executar vários comandos em vários servidores Linux

2. Pdsh – Utilitário Shell Remoto Paralelo

Pdsh é uma ferramenta de shell remota paralela simples e de código aberto para executar comandos em vários servidores Linux ao mesmo tempo. Ele emprega uma janela deslizante de threads para executar comandos remotos.

Para instalar o Pdsh em suas máquinas Linux, execute o comando apropriado abaixo.

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

Para executar comandos em vários servidores, adicione os servidores a um arquivo hosts conforme explicado anteriormente. Em seguida, execute pdsh conforme mostrado; o sinalizador -w é usado para especificar o arquivo hosts e -R é usado para especificar o módulo de comando remoto (os módulos de comando remoto disponíveis incluem ssh, rsh, exec, o o padrão é rsh).

Anote o ^ antes do arquivo hosts.

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

Caso você não especifique um comando remoto para ser executado na linha de comando como mostrado acima, pdsh é executado interativamente, solicitando comandos e executando-os quando finalizado com um retorno de carro. Para obter mais informações, consulte a página de manual do pdsh:

man pdsh 

3. ClusterSSH

ClusterSSH é uma ferramenta de linha de comando para administrar clusters de vários servidores ao mesmo tempo. Ele inicia um console de administração e um xterm para todos os servidores especificados, permitindo que você execute o mesmo comando em todos eles.

Para usar clusterssh, comece instalando-o em seu computador Linux local conforme mostrado.

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

Agora que você o instalou, abra um console de administração e um xterm em servidores remotos de uma só vez, como segue. Para executar um comando em todos os servidores, clique na barra de entrada do xterm e digite seu comando; para gerenciar um único host, use seu console de administração.

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

Para obter mais informações, consulte a página man clusterssh:

man clusterssh

4. Ansible

Ansible é uma ferramenta popular e de código aberto para automatizar processos de TI. É usado para configurar e gerenciar sistemas, implantar aplicativos e muito mais.

Para instalar o Ansible em sistemas Linux, execute o comando apropriado abaixo:

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

Depois de instalar o ansible, você pode adicionar os nomes de host ou endereços IP do seu servidor no arquivo /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Especifique-os em grupos, por exemplo, 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

Salve o arquivo e feche-o.

Agora para verificar o uptime e os usuários conectados a todos os servidores especificados no grupo webserver, no arquivo de configuração de hosts acima, basta executar a ferramenta de linha de comando ansible conforme a seguir.

As opções -a são usadas para especificar os argumentos a serem passados para o módulo e o sinalizador -u especifica o nome de usuário padrão para conectar-se aos servidores remotos via SSH.

Observe que a ferramenta CLI ansible permite executar no máximo um comando.

ansible webservers -a "w " -u admin

Isso é tudo! Neste artigo, explicamos como executar comandos em vários servidores Linux remotos ao mesmo tempo usando ferramentas amplamente utilizadas. Se você conhece alguma ferramenta disponível para a mesma finalidade, que não incluímos neste artigo, informe-nos através do formulário de comentários abaixo.