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 vSphere Command-Line 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.
vSphere PowerCLI

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

vSphere PowerCLI incluye más de 200 cmdlets, un conjunto de scripts de muestra y una biblioteca de funciones para las tareas de administración y automatización. Consulte la documentación de vSphere PowerCLI.

vSphere Command-Line Interface (vCLI)
vCLI incluye un conjunto de comandos para administrar las máquinas virtuales y los hosts ESXi. El instalador, que también instala vSphere SDK for Perl, ejecuta sistemas Windows o Linux e instala comandos ESXCLI, comandos vicfg- y un conjunto de otros comandos de vCLI. Consulte la documentación de vSphere Command-Line Interface.

A partir de vSphere 6.0, también es posible usar una de las interfaces de scripting en vCloud Suite SDK, como vCloud Suite 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
    vCLI (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.