Abrir varias máquinas virtuales en diferentes servidores con autenticación mediante un solo clic (Script)

La verdad es que no pasó mucho tiempo para que buscase la forma de automatizar el arranque de las máquinas virtuales necesarias para el trabajo del dia a dia ya que, mi mania por automatizarlo todo era un verdadero impedimento para realizar la rutinaria acción de introducir el servidor y el nombre de usuairo con la password cada vez que tenia que arrancar una de las varias máquinas virtuales.

La verdad es que es uno de los scripts más simples que puede haber pero a su vez resulta de lo más útil. La parte principal del script es la de la(s) linea(s) que invoca al VMware server pasándole directamente como parámetros los datos que nos pide si lo ejecutamos sin más. La verdad es que, casi mejor que paso al ejemplo práctico que a tratar de explicarlo con palabras.

La linea clave es la siguiente:
start "VM 1" /min vmware -h IP_SERVER -u NOMBRE_USER -w CONTRASEÑA
Y ahora pasamos a explicar cada una de las partes de la misma:

  • start: Comando del terminal de Windows que sirve para invocar programas sin salirse del Script.
  • VM 1: Nombre que le damos a la ventana. En mi caso solo dura mientras se abre.
  • /min: Abre las ventanas minimizadas. Muy útil cuando son varias las ventanas a abrir o queremos ir haciendo otras cosillas.
  • vmware: El comando para abrir el vmware.
  • -h: Parámetro para poder pasar la dirección del Host o servidor donde están las máquinas virtuales.
  • -u: Parámetro que permite especificar el nombre de usuario para abrir las maquinas.
  • -w: Último parámetro cuya finalidad es poder especificar la password del usuairo de las máquinas.

En mi caso, la idea era, no solo abrirlas mediante un simple clic, evitando dar un monton de pasos repetitivos sino que tambien las abriera en orden ya que cuando son muchas máquinas el orden es más bien una necesidad que una manía. El problema es que no importa el orden en el que las invoques desde el script ya que entran en juego otros factores como la velocidad/saturación de la red, carga de trabajo/usuarios que tenga cada uno de los servidores…etc y todos estos puntos hacen que unas veces tarde más una que otra sin seguir un orden constante y/o lógico.
Para evitar este pequeño problema, se puede recurrir a mil soluciones aunque la verdad es que la primera que me se me ocurrió, fue la que quedó hasta el dia de hoy y es hacer un ping a la dirección loopback de la máquina añadiéndole un >NUL tras invocar cada una de las máquinas. Con esto gano los segundos necesarios para que no se altere el orden con el que quiero que se abran las máquinas.

Una vez aclarados todos estos puntos, no me queda más que mostraros el pequeño Script, así que vamos allá…

@echo off
cls
rem ########################################################
rem # Script arranque maquinas Virtuales Version 1 beta #
rem ########################################################
rem ## ##
rem ## Script automatizado para arrancar las maquinas ##
rem ## virtuales con un solo comando. Made in Win :-( ##
rem ## por Alvaro Anaya ##
rem ## ##
rem ########################################################
echo.
echo.
echo Script para el arranque automatizado de las VM
echo.
echo Procediendo al arrancado...
echo.
echo Arrancando maquina 1...
start "VM 1" /min vmware -h IP_SERVIDOR -u USUARIO -w PASSWORD
ping 127.0.0.1 >NUL
echo.
echo Arrancando maquina 2...
start "VM 2" /min vmware -h IP_SERVIDOR -u USUARIO -w PASSWORD
ping 127.0.0.1 >NUL
echo.
echo Arrancando maquina 3...
start "VM 3" /min vmware -h IP_SERVIDOR -u USUARIO -w PASSWORD
ping 127.0.0.1 >NUL
echo.
echo Arrancando maquina 4...
start "VM 4" /min vmware -h IP_SERVIDOR -u USUARIO -w PASSWORD
echo.

Por supuesto, se pueden añadir o eliminar el número de máquinas a abrir o mejorar el script considerablemente pero lo que está claro es que funciona y lo hace muy bien, de hecho en mi trabajo es uno de los «must have» que todos hemos comenzado a usar diariamente por su sencillez y comodidad.

2 Comentarios

  1. Hola mi nombre es tanausú y me gustaria iniciarme en el mundo de los script, aprendiendo a realizar algunos que me ayudaran a facilitar tareas que se repiten continuamente, queria preguntarte si tienes algun manual que me ayudara,

    gracias de antemano

    un saludo

  2. Claro, manuales hay muchos pero dime, en ¿¿que sistema operativo estás pensando??

    Además debes tener en cuenta que no solo depende del sistema operativo ya que también existen multitud de lenguajes de scripting y la elección de cada uno depende, no solo del sistema operativo en el que será usado sino que también depende del tipo de tarea a realizar. No todos los lenguajes de script pueden hacer todas las cosas e incluso aunque tengas opción de hacer lo que quieras con varios de ellos, es muy posible que con unos sea mucho más complicado que con otros. Me explico, si por ejemplo quieres hacer un script que te modifique hojas de datos de excel en windows, tendrás que recurrir a VbScript ya que un Dos Script, o un archivo de proceso por lotes como el de este artículo no te serviría.

    Dime para sistema (O sistemas) estará pensado y el tipo de tareas (A grosso modo, no hace falta que especifiques si no quieres) y te indico.

    Un saludo