¿Hay alguna aplicación o "truco" para usar Terminal para duplicar comandos en diferentes hosts ssh (clusters, por lo general)?
No quiero usar otra aplicación de terminal.
EDITAR: lo siento, pero la revisión de timothymh en realidad hizo que el significado de mi pregunta fuera diferente. Lo que me gustaría es una aplicación en la que pueda emitir manualmente comandos duplicados a diferentes servidores mientras trabajo en ellos, no un script o un sistema (como Puppet) para simplemente emitir comandos conocidos. Es por eso que mencioné que odio los que probé (iTerm2, etc.) debido a la apariencia.
Me gusta la forma en que se comporta y se ve la aplicación de terminal estándar en términos de fuentes, asignación de teclado, forma de desplazarse hacia arriba y hacia abajo, etc.
Puede escribir un script de shell y ponerlo en ~/.bashrc así:
function do_some_thing() {
command="fab -R localhost deploy --set sha=master"
ssh -t ubuntu@1.2.3.4 -C "$command"
ssh -t ubuntu@1.2.3.5 -C "$command"
ssh -t ubuntu@1.2.3.6 -C "$command"
ssh -t ubuntu@1.2.3.7 -C "$command"
}
Sin embargo, hay varias herramientas que puede usar para este tipo de actividad, como Chef o Capistrano u otras.
command
como entrada ( $1
).$ do_some_thing rm /var/log/system.log
para eliminar system.log en todos los hosts.puede usar pdsh, incluso si tiene Chef, será más rápido. con Chef, la búsqueda de cuchillos (inherente a cuchillo-ssh) es una operación costosa, pero puede volcar los resultados de la búsqueda knife search node role:base -i > base.nodes
y luego usar pdsh (escrito en C) para operar en el set (obviamente, puede hacer esta parte sin Chef ). pdsh -w^base.nodes "sudo whoami"
o lo que sea. pdsh
viene con una herramienta complementaria dshbak
que también puede resumir la salida de los hosts en un informe conveniente para usted.
solo asegúrese de que no está haciendo una gestión única a gran escala utilizando herramientas como esta. es excelente para auditar y comenzar trabajos, pero no es un reemplazo para la administración de configuraciones.
brew install csshx
para Terminal.app o gem install i2cssh
para iterm2
PrimoCocaína
maraboshi
l --marc l
maraboshi