¿Cómo automatizar comandos similares a múltiples servidores a través de SSH?

¿Cómo automatizar comandos similares a múltiples servidores a través de SSH?

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/hostspuede 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

  1. 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.

  1. 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.

veresta respuesta

Respuesta3

Puedes usarMobaXtremComo cliente ssh, tiene la función MultiExec que le permite ejecutar los mismos comandos en todos los terminales abiertos.

información relacionada