Vous êtes-vous déjà demandé comment et où l’interface utilisateur vSphere génère la configuration matérielle par défaut de la machine virtuelle après avoir sélectionné un système d’exploitation invité spécifique lors de l’assistant de création de machine virtuelle ?
La réponse est assez simple en demandant à la plate-forme vSphere et bien sûr, cela est fourni en tant qu’API que tout client logiciel peut utiliser, y compris notre propre interface utilisateur vSphere !
Cela se fait grâce à l’ API EnvironmentBrowser pour interroger la liste des systèmes d’exploitation invités pris en charge et la compatibilité du matériel virtuel. En plus de ces informations, nous pouvons également demander à la plate-forme vSphere quelle est la configuration matérielle par défaut pour tous les systèmes d’exploitation invités pris en charge à l’aide de l’ API QueryConfigOption .
Pour démontrer comment utiliser l’API QueryConfigOption, voici deux fonctions PowerCLI simples qui peuvent être trouvées dans cet exemple:
Fonction Get-VMHardwareVersion {
paramètre (
[ Paramètre ( Obligatoire = $true )][ Chaîne ] $ClusterName
)
$cluster = Get-Cluster $ClusterName
$envBrowser = Get-View $cluster .ExtensionData.EnvironmentBrowser
$envBrowser .QueryConfigOptionDescriptor ().key
}
Fonction Get-VMHardwareConfig {
paramètre (
[ Paramètre ( Obligatoire = $true )][ Chaîne ] $ClusterName ,
[ Paramètre ( Obligatoire = $true )][ Chaîne ] $VMHardwareVersion
)
$cluster = Get-Cluster $ClusterName
$vmhost = $cluster | Get-VMHost | sélectionner - Premier 1
$envBrowser = Get-View $cluster .ExtensionData.EnvironmentBrowser
$vmHardwareConfigs = $envBrowser .QueryConfigOption ( $VMHardwareVersion , $vmhost .ExtensionData.MoRef )
$vmHardwareConfigs .GuestOSDescriptor
}
Avant de pouvoir récupérer la configuration matérielle de la machine virtuelle pour un système d’exploitation invité spécifique, nous devons spécifier la compatibilité matérielle de la machine virtuelle prise en charge. Pour ce faire, vous pouvez utiliser la fonction Get-VMHardwareVersion et spécifier le cluster vSphere souhaité pour interroger ces informations, comme indiqué dans la capture d’écran ci-dessous.
$ClusterName = "MainHost1-Cluster"
Get-VMHardwareVersion -ClusterName $ClusterName
Une fois que nous avons la liste des versions des compatibilités matérielles des VM prises en charge, nous pouvons utiliser la fonction Get-VMHardwareConfig et spécifier le cluster vSphere souhaité et la version de compatibilité matérielle VM pour récupérer la liste de tous les systèmes d’exploitation invités et leurs configurations matérielles par défaut.
$results = Get-VMHardwareConfig -ClusterName $ClusterName -VMHardwareVersion "vmx-10"
$results
Les résultats de cette fonction sont un tableau de tous les systèmes d’exploitation invités. il suffit de filtrer davantage les résultats en désactivant par exemple la propriété Id ou FullName