Como automatizar comandos semelhantes para vários servidores via SSH?

Como automatizar comandos semelhantes para vários servidores via SSH?

Tenho x servidores que posso conectar via SSH por meio de senhas. Se eu tiver que me conectar com apenas 1, irei ssh root@IPaddress. Em seguida, ele solicitará minha senha e, quando autenticado, poderei executar comandos lá.

E se eu tiver x servidores iguais e desejar executar o mesmo comando em cada um deles? Como posso fazer isso com um único comando ou dois?

Responder1

Parece que você deseja uma ferramenta de provisionamento comoansible,pilha de sal,chefe de cozinhaoufantoche.

O Ansible funciona de maneira muito semelhante ao que você deseja, você o executa localmente e ele faz ssh em servidores remotos para executar comandos (não há necessidade de instalar um agente nos servidores remotos como os outros produtos listados acima). Por exemplo, dada uma lista de servidores, /etc/ansible/hostsvocê pode executar ansible all -a "/bin/echo hello"o comando fornecido em todos os servidores. Guia completoaqui.

Mas, além disso, você pode começar a criar manuais de comandos úteis que permitem executá-los novamente em hosts no futuro e trabalhar para automatizar o gerenciamento de sua infraestrutura.

Alternativamente, você pode usar comandos comopsshpara executar comandos em lote em paralelo ou usando opainéis de sincronizaçãorecurso do tmux para executar comandos interativamente em vários hosts.

Responder2

  1. Executando o(s) mesmo(s) comando(s) em vários hosts

E se eu tiver x servidores iguais e desejar executar o mesmo comando em cada um deles? Como posso fazer isso com um único comando ou dois?

Você pode executar um script que obtém como parâmetro o nome do host e executar os mesmos comandos no nome do host no parâmetro

  1. Conectando via SSH a vários servidores

É altamente recomendável que você use o par de chaves ssh, e a comunicação ssh será sem senha

veresta resposta

Responder3

Você pode usarMobaXtremcomo cliente ssh, possui recurso MultiExec que permite executar os mesmos comandos em todos os terminais abertos.

informação relacionada