Fin d’un projet. J’ai migré des machines physiques et virtuelles sur un nouvel environnement vSphere.
J’ai besoin maintenant d’une liste des machines virtuelles avec le nombre de socket, le nombre de cores et la mémoire afin de mettre à jour l’inventaire, et également de déterminer comment le client final va gérer ses licences. Il faut savoir que certaines applications ou bases de données sont licenciées par CPU, alors que d’autres le sont par core. Dès lors, déterminer le nombre de virtual socket et de core dans les VM a son importance.
Grâce à PowerCLI, il est possible d’obtenir ces informations sous la forme d’une table, ensuite facilement exploitable dans Excel ou en base de données.
Le prérequis est bien entendu d’avoir installé PowerCLI et de s’être connecté au vCenter.
Je vous passe les détails. Google vous permettra de trouver toutes les infos sur les commandes utilisées. Je préciserai toutefois que NumCPU donne bien le nombre total de cores sur la VM, et non le nombre de Virtual Sockets. Ca a son importance. Donc une fois la table obtenu, on divisera TotalCores par CorePerSocket pour déterminer le nombre de virtual socket configurés dans la machine.
$result = @()
$vms=Get-view -viewtype virtualmachine
foreach ($vm in $vms) {
$obj=new-object psobject
$obj | add-member -membertype Noteproperty -Name Name -Value $vm.Name
$obj | add-member -membertype Noteproperty -Name TotalCores -Value $vm.config.hardware.NumCPU
$obj | add-member -membertype Noteproperty -Name Corepersocket -Value $vm.config.hardware.numcorespersocket
$obj | add-member -membertype Noteproperty -Name Memory -Value $vm.config.hardware.memoryMB
$result += $obj
}
$result