Em ambientes com muitos hosts, gerenciar hosts com scripts é mais rápido e menos sujeito a erros do que gerenciar os hosts do vSphere Client.

O vSphere inclui várias linguagens de script para gerenciamento de host. Consulte a Documentação ESXCLI e a documentação do vSphere API / SDK para obter informações de referência e dicas de programação, e as VMware Comunidades para obter dicas adicionais sobre o gerenciamento de scripts. A documentação do vSphere Administrator concentra-se no uso do vSphere Client para gerenciamento.
VMware PowerCLI

VMware PowerCLI é uma interface de Windows PowerShell para o vSphere API. VMware PowerCLI inclui cmdlets do PowerShell para a administração de componentes do vSphere.

VMware PowerCLI inclui centenas de cmdlets, um conjunto de scripts de amostra e uma biblioteca de funções para gerenciamento e automação. Consulte o https://developer.vmware.com/powercli.

ESXCLI
O ESXCLI inclui um conjunto de comandos para gerenciar ESXi hosts e máquinas virtuais. Consulte a documentação do ESXCLI .

Você também pode usar uma das interfaces de script para o vSphere Automation SDK, como o vSphere Automation SDK para Python.

Procedimento

  1. Crie uma função personalizada que tenha privilégios limitados.
    Por exemplo, considere a criação de uma função que tenha um conjunto de privilégios para gerenciar hosts, mas nenhum privilégio para gerenciar máquinas virtuais, armazenamento ou rede. Se o script que você deseja usar apenas extrair informações, você poderá criar uma função com privilégios somente leitura para o host.
  2. No vSphere Client, crie uma conta de serviço e atribua a função personalizada.
    Você pode criar várias funções personalizadas com diferentes níveis de acesso se quiser que o acesso a determinados hosts seja bastante limitado.
  3. Grave scripts para realizar a verificação ou modificação de parâmetros e execute-os.
    Por exemplo, você pode verificar ou definir o tempo limite interativo do shell de um host da seguinte maneira:
    Idioma 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. Em ambientes grandes, crie funções com diferentes privilégios de acesso e agrupe hosts em pastas de acordo com as tarefas que você deseja realizar. Em seguida, você pode executar scripts em pastas diferentes de contas de serviço diferentes.
  5. Verifique se as alterações aconteceram depois de executar o comando.