Procurando por um pacote que aliasse comandos em vários hosts remotos usando ssh

1

Eu gostaria de encontrar um programa que mantém uma lista de comandos que podem ser alias para diferentes hosts. por exemplo, temos um servidor de banco de dados e quatro servidores da web. uma tarefa comum é entrar no servidor admin e reiniciar o mysql usando

# ssh dbserver "service mysql restart"

depois, reiniciamos cada um dos servidores da web executando

# ssh webserver1 "service apache2 restart"
# ssh webserver2 "service apache2 restart"
# ssh webserver3 "service apache2 restart"
# ssh webserver4 "service apache2 restart"

Eu gostaria de ter um pacote que rastreie esses comandos e eu possa executá-los da seguinte forma:

# blah dbserver,webserver1-4 "restartServices"

então ele passaria por cada host listado e executaria os comandos necessários para reiniciar os serviços nessas caixas.

    
por jaymz 30.06.2012 / 00:57

3 respostas

3

Você pode escrever seu próprio script para isso.

#!/bin/bash
ssh server 1 "service apache2 restart"
ssh server 2 "service apache2 restart"
ssh server 3 "service apache2 restart" etc....

Em seguida, basta executar o script.

    
por 30.06.2012 / 01:00
1

Isso pode ser feito de algumas maneiras.

Talvez a maneira mais simples seja usar pssh (ssh paralelo).

Se suas necessidades são mais complexas, você pode usar um framework como Fabric ou MCollective .

    
por 30.06.2012 / 01:05
1

Parece-me que o que você quer é rundeck . Ele vem com uma interface web agradável, mas também funciona tão bem na linha de comando.

    
por 30.06.2012 / 01:40