Por Luke Orellana

¿Alguna vez te has topado con el escenario en el que todas sus máquinas virtuales están caídas y necesita encender ese servidor DNS que permitiría que tu entorno volviese a respirar de nuevo? Yo también. Muchas veces. Es por eso que poder encender máquinas virtuales desde la consola ESXi puede salvarte la vida. Nunca sabes cuándo lo necesitarás. En mi experiencia, generalmente se debe a una planificación deficiente o a tener que cambiar algún equipamiento en el último minuto.Pero sucede. Repasemos los pasos sobre cómo ingresar a la consola ESXi y encender con éxito las máquinas virtuales desde allí.

Nota: ¿Buscas más ayuda general para la solución de problemas de vSphere? Puedes encontrarla aquí!

Cómo abrir una sesión de consola en ESXi

Existe una cantidad sorprendente de administradores de VMware que no saben cómo abrir una consola ESXi desde la Interfaz de usuario de consola directa (DCUI) del host ESXi. Así que este truco te vendrá bien cuando configures ESXi en un sitio nuevo y algunos de los componentes de red aún no estén activos, o si hay algún problema con la NIC de ESXi y aún no puedes acceder a la interfaz de usuario web para configurar ESXi. Una vez que entramos por consolao nos conectamos por RMM, llegamos a la querida pantalla DCUI con la que todos estamos familiarizados. Antes de que podamos abrir una sesión de consola, hay una cuenta que debemos verificar. Presiona F2 para llegar al menú de configuración:

Cómo abrir una sesión de consola en ESXi

Ahora selecciona Troubleshooting Options:

Opciones de solución de problemas ESXi

Aquí está la parte liosa. De forma predeterminada, ESXi establece la configuración de Tiempo deespera de disponibilidad y Tiempo de espera deinactividad en «0», lo que evita que los administradores abran una sesión de consola. Por lo tanto, habrá que configurarlo en un número mayor que 0. Por lo general indico 300. Presiona Entrar para guardar tus cambios:

Tiempos de espera para el acceso al shell de ESXi

Ahora, podemos habilitar el shell ESXi resaltándolo y presionando Enter. La pantalla cambiará a «Deshabilitar ESXi Shell», pero en el lado derecho mostrará que ahora está habilitado:

Opciones de modo de solución de problemas de ESXi

Presiona ESC para volver a la pantalla del menú principal, mantén presionada la tecla ALT y presiona F1 para acceder a la ventana de la consola. Ahora podemos introducir nuestra contraseña de raíz y obtener acceso a la consola en la consola de ESXi:

Consola ESXi

Cómo encender máquinas virtuales desde la consola ESXi

Ahora que ya hemos entrado, podemos buscar en nuestra lista de máquinas virtuales por línea de comandos. Usaremos el comando vim-cmd, que utiliza la API de vSphere para administrar ESXi. También utilizaremos el subcomando vmsvc para manipular nuestras máquinas virtuales con las distintas opciones. Vamos a obtener una lista de todas nuestras máquinas virtuales que son controladores de dominio para que podamos encenderlas. Necesitaremos el VMID para especificar con qué máquinas virtuales queremos ejecutar los comandos, ESXi desea el número de ID, no el nombre. Así que vamos a obtener el VMID para nuestros dos servidores DNS. La sintaxis es la siguiente. Estoy buscando cualquier MV con el nombre «LukeLabDC» en ellas:

vim-cmd vmsvc/getallvms | grep LukeLabDC

El VMID es el número que se muestra en la primera columna a la izquierda. Es decir, el 8 y el 9. Ahora que tenemos las VMID, revisamos cada MV para ver si están encendidas o apagadas. La sintaxis ses así:

NOTA: debes reemplazar «8» con la VMID a que esté asignada tu VM:

vim-cmd vmsvc/power.getstate 8

Ahora que sabemos que nuestras máquinas virtuales (MV) están apagadas en este momento, avancemos y encendamos:

vim-cmd vmsvc/power.on 8

Seguidamente confirmaremos que está encendido ejecutando de nuevo el mismo subcomando getstate:

Si quisiéramos realizar un cierre correcto de la máquina virtual, usaríamos power.shutdown . Si queremos forzar la desactivación de la máquina virtual, intercambiamos el subcomando power.shutdown con power.off .Además, ten en cuenta que las herramientas de VMware deben estar instaladas en la máquina virtual para que power.shutdown funcione, ya que básicamente utiliza las herramientas de VMware para realizar el cierre correcto:

vim-cmd vmsvc/power.shutdown 8

Ahora, para continuar con este caso, ¿qué sucede si tenemos un host ESXi que está completamente bloqueado? No puedo administrarlo a través de vSphere, y PowerCLI tampoco se conectará al host. Para limitar la cantidad de daños a las máquinas virtuales, quiero cerrarlas antes de intentar reiniciar el host ESXi. Una posible solución es la consola en el host ESXi y entrar en una sesión de consola y usar vim-cmd para apagar cada MV, de manera similar a lo que acabamos de hacer anteriormente.Si tienes muchas máquinas virtuales en el host, puedes usar un bucle for para obtener todas las VMID del host y apagar cada una con vim-cmd. La sintaxis se vería como a continuación, solo escribe cada línea y pulsa enter después, una vez que escribes «done» se ejecutará el ciclo. Además, si deseas intentar cerrar cada máquina virtual con cierta elegancia, usa power.shutdown en lugar de power.off:

for i in $(vim-cmd vmsvc/getallvms |grep LukeLabDC | awk '{ print $1 }')
do
vim-cmd vmsvc/power.off $i
done

Para terminar

Como dije antes, nunca se sabe cuándo te vas a encontrar con un escenario en el que necesites administrar máquinas virtuales a través de la consola. He estado en esas situaciones antes y es muy útil saber que por lo menos es posible hacerlo, y aún más útil tener un artículo marcado en tu navegador web con los pasos para hacerlo. Cómentame a continuación cualquier situación en la que hayas tenido que encender máquinas virtuales a través de la consola.