En los entornos con muchos hosts, la administración de hosts con scripts resulta más rápida y es menos proclive a errores que la administración de hosts desde vSphere Client.

vSphere incluye varios lenguajes de scripting para la administración de hosts. Consulte la documentación de ESXCLI y la documentación de vSphere API/SDK para obtener información de referencia y consejos de programación. Consulte las comunidades de VMware para obtener otros consejos sobre la administración generada por script. La documentación sobre el administrador de vSphere se centra en el uso de vSphere Client para realizar la administración.
VMware PowerCLI

VMware PowerCLI es una interfaz de Windows PowerShell para vSphere API. VMware PowerCLI incluye cmdlets de PowerShell para administrar componentes de vSphere.

VMware PowerCLI incluye cientos de cmdlets, un conjunto de scripts de muestra y una biblioteca de funciones para las tareas de administración y automatización. Consulte https://developer.vmware.com/powercli.

ESXCLI
ESXCLI incluye un conjunto de comandos para administrar hosts  ESXi y máquinas virtuales. Consulte la documentación de ESXCLI.

También se puede usar una de las interfaces de scripting en vSphere Automation SDK, como vSphere Automation SDK for Python.

Procedimiento

  1. Cree una función personalizada con privilegios limitados.
    Por ejemplo, considere crear una función que contenga un conjunto de privilegios para administrar hosts, pero que no incluya privilegios para administrar máquinas virtuales, almacenamiento o redes. Si el script que desea usar solamente extrae información, puede crear una función con privilegios de solo lectura para el host.
  2. En vSphere Client, cree una cuenta de servicio y asigne la función personalizada a esa cuenta.
    Puede crear varias funciones personalizadas con diferentes niveles de acceso si desea que el acceso a determinados hosts sea bastante limitado.
  3. Escriba scripts para comprobar o modificar parámetros, y ejecute esos scripts.
    Por ejemplo, puede comprobar o establecer el tiempo de espera interactivo del shell de un host de la siguiente manera:
    Lenguaje Comandos
    ESXCLI
    esxcli <conn_options> system settings advanced get /UserVars/ESXiShellTimeOut
    esxcli --formatter=csv --format-param=fields="Path,Int Value" 
    system settings advanced list | grep /UserVars/ESXiShellTimeOut
    PowerCLI
    #List UserVars.ESXiShellInteractiveTimeOut for each host
    Get-VMHost | Select Name,
     @{N="UserVars.ESXiShellInteractiveTimeOut";E={$_ 
    | Get-AdvancedSetting -Name UserVars.ESXiShellInteractiveTimeOut
    | Select -ExpandProperty Value}}
    
    # Set UserVars.ESXiShellTimeOut to 900 on all hosts
    Get-VMHost 
    | Foreach { Get-AdvancedSetting -Entity $_ -Name UserVars.ESXiShellInteractiveTimeOut | Set-AdvancedSetting -Value 900 }
    
  4. En entornos grandes, cree funciones con diferentes privilegios de acceso y hosts de grupos en carpetas según las tareas que desee realizar. Posteriormente, puede ejecutar scripts en diferentes carpetas desde diferentes cuentas de servicio.
  5. Verifique que se hayan producido cambios después de ejecutar el comando.