Tengo x servidores a los que puedo conectarme vía SSH mediante contraseñas. Si tengo que conectarme solo con 1, usaré ssh root@IPaddress. Luego me pedirá mi contraseña y, una vez autenticado, podré ejecutar comandos allí.
¿Qué pasa si tengo x servidores todos iguales y deseo ejecutar el mismo comando en cada uno de ellos? ¿Cómo puedo hacer esto con uno o dos comandos?
Respuesta1
Parece que quieres una herramienta de aprovisionamiento comoansible,pila de sal,cocineroomarioneta.
Ansible funciona de una manera muy similar a lo que desea, lo ejecuta localmente y se conecta a servidores remotos para ejecutar comandos (no es necesario instalar un agente en los servidores remotos como los otros productos enumerados anteriormente). Por ejemplo, dada una lista de servidores, /etc/ansible/hosts
puede ejecutar ansible all -a "/bin/echo hello"
el comando dado en todos los servidores. guía completaaquí.
Pero además de esto, puede comenzar a crear manuales de comandos útiles que le permitirán volver a ejecutarlos en los hosts en el futuro y trabajar para automatizar la administración de su infraestructura.
Alternativamente, puedes usar comandos comopsshpara ejecutar comandos por lotes en paralelo o usar elsincronizar panelesCaracterística de tmux para ejecutar comandos de forma interactiva en múltiples hosts.
Respuesta2
- Ejecutar los mismos comandos en varios hosts
¿Qué pasa si tengo x servidores todos iguales y deseo ejecutar el mismo comando en cada uno de ellos? ¿Cómo puedo hacer esto con uno o dos comandos?
Puede ejecutar un script que obtenga como parámetro el nombre del host y ejecute los mismos comandos en el nombre del host en el parámetro.
- Conexión vía SSH a múltiples servidores
Se recomienda encarecidamente que utilice un par de claves ssh y la comunicación ssh no tendrá contraseña.
Respuesta3
Puedes usarMobaXtremComo cliente ssh, tiene la función MultiExec que le permite ejecutar los mismos comandos en todos los terminales abiertos.