Em ambientes com muitos hosts ESXi, o gerenciamento de hosts com scripts é mais rápido e menos propenso a erros do que o gerenciamento dos hosts do vSphere Client.

vSphere inclui linguagens de script para gerenciamento de host ESXi. VMware PowerCLI é uma interface Windows PowerShell para o vSphere API e inclui cmdlets do PowerShell para administrar componentes vSphere. O ESXCLI inclui um conjunto de comandos para gerenciar hosts e máquinas virtuais ESXi. Consulte https://developer.vmware.com para obter informações de referência e dicas de programação. A documentação do administrador do vSphere se concentra no uso do vSphere Client para gerenciamento.

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 ela 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. Escreva 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 executar. Em seguida, você pode executar scripts em diferentes pastas de diferentes contas de serviço.
  5. Verifique se as alterações ocorreram depois de executar o comando.