GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ejecutar el mismo script en varios servidores a través de Ssh?

Regularmente necesito actualizar algunos servidores Ubuntu 12.04 (Precise Pangolin) (Rackspace).

Lo que hago ahora es:

  • Copiar un archivo a un servidor usando SCP
  • Inicie sesión en el servidor usando SSH
  • Detener Tomcat
  • Copie y mueva el archivo cargado
  • Iniciar Tomcat

Repita exactamente el mismo proceso con el mismo archivo en el segundo servidor (12 servidores ahora y el número va en aumento).

¿Es posible escribir un script que recorra una lista de servidores y haga todo esto por mí?

¿Cómo lo haría?
Preferiblemente, la solución no necesitaría la instalación de nada. La mayoría dentro de la empresa trabaja en MacBooks, pero abundan las VM de Windows.

Idealmente, los servidores que se actualizarán pueden simplemente agregarse o eliminarse para cambiar la lista de servidores. Sin embargo, cualquier solución que me ahorre el tiempo de hacer lo mismo +12 veces es muy apreciada 🙂

Respuesta aceptada:

Hay varias soluciones para esto:¿quieres mantener el control manual de los pasos y simplemente ejecutarlos simultáneamente? La mirada a CSSH (si viene de un sistema Linux) o SuperPutty (si viene de un sistema Windows). Si simplemente quiere automatizar todo, mire Expect.


Linux
  1. ¿Hacer referencia a un archivo en el mismo directorio de un script encontrado en $ruta?

  2. No se pueden ejecutar aplicaciones X a través de SSH en Linux

  3. Cómo ejecutar un script de shell al inicio

  4. Cambiar el contenido de un archivo a través de un script de shell

  5. Recorra recursivamente los directorios y ejecute un comando en un archivo en el directorio

Uso del archivo de configuración SSH

¿La salida se guardará en un archivo con el mismo nombre que el archivo de entrada?

¿Guardar toda la salida del terminal en un archivo?

Administre los servidores en la nube de OnMetal a través de la API

¿Cuál es la forma más rápida de ejecutar un script?

SSH:cómo incluir el comando -t en el archivo ~/.ssh/config