
Necesito poder ejecutar localmente un script que se conecte a varios servidores y ejecute comandos en ellos. Cuál es la mejor manera de lograr esto?
Respuesta1
Personalmente yo usaríaCapistrano. Es amigable y está escrito en Ruby y ellos ya hicieron todo el trabajo pesado por usted.
De Wikipedia:
Capistrano es una utilidad y un marco para ejecutar comandos en paralelo en múltiples máquinas remotas, a través de SSH.
Respuesta2
puedes ejecutar un comando usando ssh hostname command
. Si tiene un script completo que necesita ejecutar, primero use scp para transferirlo al host remoto y luego ssh para ejecutarlo.
scp script.sh host:script.sh
ssh host ./script.sh
Respuesta3
Respuesta4
Un bucle rápido 'for' de bash podría ser más fácil, tal vez algo como:
for h in host1 host2 host3
do
echo $h
ssh user@$h "ps -ef"
done
Por supuesto, cfengine/puppet/chef/capistrano son mejores opciones de gestión de configuración. Si desea enviar comandos de forma interactiva a los distintos shells, clusterm (http://sourceforge.net/projects/clusterm/) también es una buena opción.