Com o crescente uso de orquestração e automação, especialmente em ambientes de microserviços, a maneira de gerenciar recursos e sistemas mudou consideravelmente. A implementação de serviços modernos exige o gerenciamento de múltiplos servidores simultaneamente, sendo muitos deles virtuais e com vida útil curta.
Isso torna a prática de acessar cada servidor individualmente não só impraticável, mas muitas vezes impossível. Nesse cenário, ferramentas de orquestração e automação, como o PSSH (Parallel SSH), se tornam indispensáveis para garantir que operações sejam realizadas de maneira eficiente e coordenada em diversos hosts de forma simultânea.
Neste post, vamos mostrar como utilizar o PSSH para executar comandos em múltiplos hosts Linux ao mesmo tempo, uma solução prática e poderosa para gerenciar ambientes complexos. A seguir, será abordado desde a instalação do PSSH até exemplos práticos de como utilizá-lo, tornando-o uma ferramenta essencial em ambientes de administração de sistemas e automação de tarefas.
O que é PSSH?
PSSH, ou Parallel SSH, é uma ferramenta que permite executar comandos em vários servidores simultaneamente usando a tecnologia SSH. Enquanto o SSH convencional permite conectar-se a um único servidor para execução de comandos, o PSSH estende essa funcionalidade para múltiplos hosts, economizando tempo e esforço ao executar comandos em um número grande de servidores ao mesmo tempo. Esta ferramenta é especialmente útil em cenários de gerenciamento de grandes infraestruturas ou quando a mesma tarefa precisa ser repetida em vários sistemas.
Além do PSSH, outras ferramentas de orquestração como Ansible, Chef, Puppet e Terraform são frequentemente utilizadas, mas o PSSH se destaca por ser uma solução mais simples e de baixo nível, sem a complexidade de configuração das ferramentas mencionadas, o que o torna ideal para usuários que buscam agilidade em operações em lote.
Instalando o PSSH no Ubuntu
A instalação do PSSH no Ubuntu é bastante simples. Para instalá-lo, basta usar o gerenciador de pacotes apt:
sudo apt install psshEste comando instala o pacote do PSSH rapidamente, sem necessidade de configurações complicadas. O processo de instalação é semelhante em outras distribuições, como CentOS, onde também se pode usar o gerenciador de pacotes yum para instalar a ferramenta.
Configurando o acesso SSH sem senha
Para que o PSSH funcione corretamente, é necessário que você tenha acesso SSH sem senha configurado entre o servidor local e os hosts remotos. Isso pode ser feito gerando uma chave SSH e copiando-a para os hosts remotos, utilizando o comando ssh-copy-id:
ssh-copy-id user@host_remotoIsso garante que, ao utilizar o PSSH, você não precise inserir a senha a cada execução de comando, agilizando o processo de automação. Caso tenha dúvidas sobre como configurar o SSH sem senha, é possível encontrar tutoriais como o “Deep Dive: SSH and Telnet” da Pluralsight, que detalha todas as etapas dessa configuração.
Trabalhando com arquivos de inventário de hosts
Para gerenciar múltiplos hosts, você precisa de um arquivo de inventário que contenha os endereços IP ou os nomes dos hosts. Este arquivo é utilizado pelo PSSH para direcionar os comandos para os servidores corretos. Vamos criar um arquivo chamado sshhosts.txt com os IPs dos hosts remotos:
$ less sshhosts.txt
10.0.3.93
10.0.3.43Com o arquivo de inventário pronto, podemos usar o PSSH para executar comandos nesses hosts simultaneamente.
Executando comandos com o PSSH
Uma das funções mais básicas do PSSH é executar comandos em vários hosts ao mesmo tempo. Suponha que você queira verificar o espaço em disco de todos os seus servidores. Usando o comando df, você pode verificar o espaço utilizado em cada sistema de arquivos, restringindo a saída para mostrar apenas os discos formatados com o sistema de arquivos ext4. O comando seria executado da seguinte forma:
$ parallel-ssh -i -h sshhosts.txt df -ht ext4- O parâmetro
-ifaz com que o PSSH execute o comando de forma interativa, exibindo a saída de cada host em tempo real. - O parâmetro
-hespecifica o arquivo de hosts. - O comando
df -ht ext4exibe o espaço em disco dos dispositivos que utilizam o sistema de arquivosext4.
A saída desse comando pode ser algo semelhante a isso:
[1] 22:02:00 [SUCCESS] 10.0.3.43
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 457G 131G 304G 30% /
[2] 22:02:00 [SUCCESS] 10.0.3.93
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 457G 131G 304G 30% /Dessa forma, você consegue monitorar os discos de todos os servidores de maneira eficiente, sem a necessidade de logar manualmente em cada um.
Coletando arquivos remotos com PSSH
Outra função poderosa do PSSH é a capacidade de coletar arquivos de servidores remotos de maneira paralela. No exemplo a seguir, vamos coletar o arquivo /etc/group de dois servidores e armazená-los localmente.
Primeiro, criamos um diretório para armazenar os arquivos:
mkdir host-filesDepois, utilizamos o comando parallel-slurp, que é especializado em transferir arquivos de servidores remotos para a máquina local:
parallel-slurp -h sshhosts.txt -L host-files/ /etc/group group- O parâmetro
-Ldefine o diretório de destino para os arquivos coletados. - O comando
/etc/groupé o arquivo que desejamos copiar dos hosts. - O nome
groupé atribuído aos arquivos coletados localmente.
Ao final da execução, o diretório host-files conterá subdiretórios nomeados pelos IPs dos hosts, com os arquivos /etc/group extraídos:
$ tree host-files/
host-files/
├── 10.0.3.43
│ └── group
└── 10.0.3.93
└── groupEssa abordagem pode ser útil para monitoramento de arquivos críticos em múltiplos servidores, facilitando a auditoria e análise de dados de segurança.
Outros comandos e funcionalidades do PSSH
Além do comando parallel-ssh e parallel-slurp, o PSSH oferece outras funcionalidades úteis, que podem ser exploradas usando o comando apropos:
$ apropos parallel
parallel-nuke (1) - parallel process kill program
parallel-rsync (1) - parallel process kill program
parallel-scp (1) - parallel process kill program
parallel-slurp (1) - parallel process kill program
parallel-ssh (1) - parallel ssh programEntre essas opções, destacam-se:
parallel-rsync: Para sincronizar arquivos em múltiplos servidores simultaneamente.parallel-scp: Para transferir arquivos para múltiplos servidores ao mesmo tempo.parallel-nuke: Para finalizar processos em paralelo nos hosts remotos.
Esses comandos são extremamente úteis para quem administra múltiplos servidores e precisa de uma solução prática e eficiente para gerenciar grandes volumes de dados e operações.
O PSSH é uma ferramenta poderosa no Linux
O PSSH é uma ferramenta poderosa para quem precisa gerenciar e executar comandos em múltiplos servidores simultaneamente. Sua simplicidade, associada à possibilidade de paralelizar comandos, a torna uma solução eficiente para automatizar tarefas e melhorar a administração de sistemas em ambientes complexos. A instalação e configuração são simples, e a integração com o SSH proporciona uma maneira segura e prática de gerenciar servidores sem a necessidade de login manual.
Seja para verificar o uso de discos, coletar arquivos remotos ou executar scripts em paralelo, o PSSH oferece uma abordagem de baixo nível, sem a complexidade de ferramentas de orquestração mais avançadas, tornando-o ideal para administradores de sistemas que buscam agilidade e eficiência em suas operações.
Escreva perguntas frequente sobre o PSSH
O PSSH (Parallel SSH) é uma ferramenta extremamente útil para administradores de sistemas que precisam executar comandos de forma simultânea em múltiplos servidores. No entanto, como qualquer ferramenta, pode gerar algumas dúvidas sobre seu uso e funcionalidades.
Para facilitar a compreensão e o aproveitamento pleno do PSSH, reunimos uma lista com as perguntas mais frequentes sobre o assunto. Essas perguntas abordam desde a instalação e configuração até os recursos mais avançados da ferramenta, proporcionando um guia prático para usuários iniciantes e avançados.
O que é o PSSH? O PSSH (Parallel SSH) é uma ferramenta que permite executar comandos simultaneamente em múltiplos servidores Linux usando SSH.
Como instalo o PSSH no Ubuntu? Basta executar o comando sudo apt install pssh no terminal.
O PSSH funciona em outras distribuições além do Ubuntu? Sim, o PSSH funciona em outras distribuições Linux, como CentOS, usando o gerenciador de pacotes apropriado (como yum).
Preciso de configuração especial para usar o PSSH? É necessário configurar o SSH sem senha entre o host local e os servidores remotos para garantir a execução sem a necessidade de autenticação repetida.
O que é um arquivo de inventário no PSSH? É um arquivo que contém os endereços IP ou nomes de host dos servidores nos quais os comandos serão executados simultaneamente.
Como posso executar um comando em vários servidores ao mesmo tempo? Use o comando parallel-ssh -i -h <arquivo_de_hosts> <comando>, onde o arquivo de hosts contém os endereços IP dos servidores.
O que significa o parâmetro -i no PSSH? O -i faz com que o comando seja executado de forma interativa, permitindo que você veja a saída de cada host em tempo real.
Posso transferir arquivos usando o PSSH? Sim, o PSSH possui o comando parallel-scp para transferir arquivos para múltiplos servidores simultaneamente.
Como posso coletar arquivos remotos com o PSSH? Use o comando parallel-slurp para coletar arquivos de servidores remotos e armazená-los localmente.
O PSSH funciona com containers ou apenas com servidores físicos? O PSSH pode ser usado tanto com servidores físicos quanto com containers, desde que o SSH esteja configurado corretamente.
Quais são as vantagens do PSSH sobre outras ferramentas de orquestração? O PSSH é mais simples e direto, ideal para quem busca uma solução rápida e de baixo nível para executar comandos em múltiplos hosts sem a complexidade de ferramentas de orquestração como Ansible ou Puppet.
O que é o comando parallel-rsync no PSSH? O parallel-rsync permite sincronizar arquivos entre múltiplos servidores simultaneamente, otimizando a transferência de dados.
Posso executar um script em múltiplos servidores com o PSSH? Sim, basta usar o PSSH para executar scripts ou comandos em vários servidores ao mesmo tempo.
Como faço para interromper a execução de um comando no PSSH? Você pode usar o comando parallel-nuke para finalizar processos que estão sendo executados simultaneamente nos servidores remotos.
O PSSH é uma ferramenta gratuita? Sim, o PSSH é uma ferramenta open-source e pode ser utilizada gratuitamente.
Veja outras soluções de problemas do Windows e outros sistemas:
Como migrar o WDS e MDT para um novo servidor Windows
A migração de serviços entre servidores é uma tarefa comum em ambientes corporativos, seja por questões de segurança, conformidade, fim de vida útil do hardware ou aumento de carga. Quando se trata de migrar o Windows Deployment Services (WDS) e o Microsoft Deployment Toolkit (MDT) para um novo servidor, essa tarefa pode parecer complexa, mas…
Como configurar a desduplicação de dados no Windows Server
A otimização de espaço em disco é uma preocupação constante para administradores de servidores. Com o aumento contínuo da quantidade de dados armazenados, a gestão eficiente do armazenamento se torna crucial para reduzir custos e melhorar o desempenho do sistema. Nesse contexto, a Desduplicação de Dados (ou Data Deduplication) é uma tecnologia importante, que pode ser configurada…
Segurança avançada de login (ESS) no Windows 11
O Windows 11 é uma plataforma repleta de recursos inovadores, e um desses recursos é a Segurança Avançada de Login (ESS, na sigla em inglês). Com o ESS, o sistema operacional oferece uma camada adicional de segurança para os usuários, aprimorando o processo de login através de métodos biométricos, como reconhecimento facial e leitura de impressões digitais….
Como listar todos os pacotes instalados no Linux
No sistema operacional Linux, a gestão de pacotes é uma tarefa essencial para manter o sistema atualizado e funcionando de maneira eficiente. Cada distribuição Linux possui um método específico para instalar, atualizar e remover pacotes. Uma das tarefas mais comuns é verificar quais pacotes estão instalados no sistema. Esse processo é simples e pode ser…
Tela do Mac piscando sem parar: como resolver?
Os usuários de Mac têm relatado que o problema de flickering, ou piscamento da tela, pode ocorrer tanto em Macs mais antigos quanto em modelos mais novos, incluindo aqueles com chip Apple Silicon. Embora nem todos os usuários enfrentem esse problema, ele é suficientemente comum para merecer atenção. Este artigo explora as causas desse problema…
Como identificar imagens geradas por IA?
Com o avanço das tecnologias de inteligência artificial (IA), a criação de imagens realistas por meio de algoritmos se tornou uma realidade cada vez mais presente. Imagens geradas por IA são agora capazes de enganar até os olhos mais atentos, tornando difícil para as pessoas comuns distinguirem entre uma foto tirada no mundo real e…






