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
- 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.
- 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.
- 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 }
|
- 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.
- Verifique se as alterações ocorreram depois de executar o comando.