PowerCLI one-liners: Habilitar masivamente ESXi Shell y SSH con PowerCLI

Si bien VMware te avisa con un bonito warning al activarlos, la ESXi Shell y la administración vía SSH son herramientas valiosísimas para hacer troubleshooting en nuestros servidores ESXi. En la entrada de hoy vamos a ver cómo habilitar de forma masiva ESXi Shell y SSH con PowerCLI en nuestros host ESXi para evitar tener que hacerlo a mano uno por uno.

¿Cómo habilitar ESXi Shell y SSH con PowerCLI?

Como siempre, antes de realizar cualquier acción en PowerShell/PowerCLI debemos buscar los cmdlets que nos pueden ayudar a realizar las acciones que necesitamos. Como en este caso lo que necesitamos es manejar los servicios de VMware podríamos hacer la siguiente búsqueda con Get-Command:

Cmdlets Servicios PowerCLI

Si utilizamos Get-VMHostService podemos ver qué servicios tienen nuestros ESXi y su estado:

Servicios ESXi Shell y SSH con PowerCLI

Como podemos ver marcados en rojo ya tenemos los dos servicios que buscamos: TSM (ESXi Shell) y TSM-SSH (SSH). Otras cosas interesantes que podemos observar en la captura son que los servicios no están habilitados (Policy = off) y que no están activos (Running = False). Si juntamos estas piezas con los cmdlets de la captura anterior ya tenemos el one-liner hecho:

Get-VMHost | Get-VMHostService | Where Key -like 'TSM*' | Set-VMHostService -Policy on -Confirm:$false | Start-VMHostService -Confirm:$false

Vamos a desglosar la línea:

  • Get-VMHost: Listamos todos los host.
  • Get-VMHostService | Where Key -like ‘TSM*’: Obtenemos los servicios y filtramos por los que en el campo Key contienen TSM (ESXi Shell y SSH).
  • Set-VMHostService -Policy on -Confirm:$false: Habilitamos el servicio ponendo el parámetro Policy a on.
  • Start-VMHostService -Confirm:$false: Arrancamos el servicio.

La salida del comando debería mostrarnos como ambos servicios han sido arrancados y habilitados:

Servicios ESXi arrancados

Bola extra: Quitar el warning ‘SSH está habilitado en este host’

Una vez ejecutado el one-liner, si nos conectamos a la consola de administración de un ESXi o de nuestro vCenter deberíamos ver este par de mensajes:

  • La shell de ESXi está habilitado en este host.
  • SSH está habilitado en este host.

SSH está habilitado en este host

Como decía al principio de la entrada, VMware nos muestra estos avisos porque son considerados una falla de seguridad. Si queréis asumir el riesgo y quitar estos mensajes, si bien como siempre podéis hacerlo desde la propia consola gráfica, podemos hacerlo con otro one-liner:

Get-VMHost | Set-VmHostAdvancedConfiguration -Name UserVars.SuppressShellWarning -Value 1

Conclusión

Y hasta aquí el one-liner de hoy. Podéis consultar los anteriores PowerCLI one-liners y los PowerShell one-liners desde sus respectivos tags.

¡Espero que os sirvan!

Deja un comentario