VMWare: ESXi Apagar todas las VMs desde SSH

En infraestructuras virtuales donde no disponemos de Virtual Center, ni de PowerCLI, una de las formas para detener de forma ordenada todas las VMs de un host VMWare ESXi es vía VSphere Client, sin embargo si pretendemos automatizar el proceso podemos utilizar la shell de ESXi vía SSH.

Veamos el procedimiento para apagar VMs de un host VMWare ESXi desde SSH:

Para ello, utilizaremos el comando vim-cmd.

Ejemplo:

[root@ESX1:~] vim-cmd vmsvc/getallvms
Vmid   Name          File               Guest OS       Version  
1      SRV2   [NAS] SRV2/SRV2.vmx   winLonghornGuest   vmx-08
2      SRV1   [SAN] SRV1/SRV1.vmx   winLonghornGuest   vmx-08
 
[root@ESX1:~]  vim-cmd vmsvc/power.shutdown 2

Según el ejemplo, podemos ver como con el comando vim-cmd vmsvc/getallvms, listamos todas las VMs registradas en el host VMWare ESXi.

Para detener una VM, podemos ejecutar vim-cmd vmsvc/power.shutdown y a continuación el identificador (Vmid).

Si nuestra idea es detener todas las VMs que están funcionando sobre el host VMWare ESXi, podemos utilizar el script: /sbin/shutdown.sh

Veamos el procedimiento para apagar TODAS las VMs de un host VMWare ESXi desde SSH:

1) Instalar VMWare Tools en todas las VMs.

2) Modificar la configuración de apagado del host VMWare ESXi:

Desde VSphere Client, nos situamos sobre el host VMWare ESXi, pestaña "Conifguration", apartado "Virtual Machine Startup and Shutdown" y "Properties"

A continuación, dentro del apartado "System Settings", marcamos la opción:

"Allow virtual machines to start and stop automatically with the system"

después dentro del apartado: "Shutdown action", marcamos la opción: "Guest Shutdown".

La opción "Guest Shutdown" detendrá de forma ordenada las VMs utilizando las "VMWare Tools".


En el aparado "Startup Order", podemos configurar el orden de inicio de las VMs: Si las VMs quedan dentro de "Manual Startup", no se iniciarán de forma automática al iniciar el host VMWare ESXi.

Si no situamos VMs en "Atomatic Startup" o en "Any Order", las VMs no serán detenidas con "Guest Shutdown" al detener el host VMWare ESXi.

3) Ejecutamos shutdown y poweroff vía SSH.

Una vez conectamos vía SSH, ejecutamos:

/sbin/shutdown.sh && /sbin/poweroff

* El doble ampersan: "&&" sirve para ejecutar el segundo comando al finalizar la ejecución del primero.

Veamos cómo funciona su ejecución:

Al ejecutar /sbin/shutdown.sh veremos como se detienen todas las VMs de forma ordenada, siempre y cuando hayamos implementado los puntos 1 y 2.

Podemos verificar su correcto funcionamiento examinando las consolas de las VMs mientras está en ejecución el script: /sbin/shutdown.sh.

En las consolas de las VMs, veremos como se produce un apagado ordenado de las mismas:

VMWare: ESXi Apagar todas las VMs desde SSH

Una vez se ha ejecutado /sbin/shutdown.sh, veremos como las VMs se han detenido pero el host VMWare ESXi no se ha apagado por completo.

Al ejecutar /sbin/poweroff, apagaremos el host VMWare ESXi.

No hay comentarios:

Publicar un comentario