Dans les environnements comportant de nombreux hôtes ESXi, la gestion des hôtes avec des scripts est plus rapide et moins susceptible de provoquer des erreurs que la gestion des hôtes depuis vSphere Client.

vSphere inclut plusieurs langages de script pour la gestion des hôtes ESXi. VMware PowerCLI fournit une interface Windows PowerShell à vSphere API et inclut des applets de commande PowerShell pour l'administration de composants vSphere. ESXCLI inclut un ensemble de commandes pour la gestion des hôtes ESXi et des machines virtuelles. Reportez-vous à https://developer.vmware.com pour obtenir des informations de référence et des conseils de programmation. La documentation de l'administrateur de vSphere est principalement axée sur l'utilisation de vSphere Client pour la gestion.

Vous pouvez également utiliser l'une des interfaces de script au vSphere Automation SDK, comme le vSphere Automation SDK pour Python.

Procédure

  1. Créez un rôle personnalisé ayant des privilèges limités.
    Reportez-vous à la section Créer un rôle personnalisé vCenter Server.
    Par exemple, considérez la création d'un rôle disposant d'un ensemble de privilèges pour la gestion d'hôtes mais sans privilège pour la gestion de machines virtuelles, du stockage ou de la mise en réseau. Si le script que vous souhaitez utiliser extrait uniquement des informations, vous pouvez créer un rôle disposant de privilèges de lecture seule pour l'hôte.
  2. Dans vSphere Client, créez un compte de service et attribuez-lui le rôle personnalisé.
    Vous pouvez créer plusieurs rôles personnalisés avec différents niveaux d'accès si vous souhaitez que l'accès à certains hôtes soit assez limité.
  3. Écrivez des scripts pour effectuer la vérification ou la modification de paramètres, puis exécutez-les.
    Par exemple, vous pouvez vérifier ou définir le délai d'expiration interactif du shell d'un hôte de la façon suivante :
    Langue Commandes
    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. Dans les environnements de grande envergure, créez des rôles avec des privilèges d'accès différents et des hôtes du groupe dans des dossiers en fonction des tâches que vous souhaitez effectuer. Vous pouvez ensuite exécuter des scripts sur les différents dossier depuis les différents comptes de service.
  5. Vérifiez que les modifications ont été appliquées après l'exécution de la commande.