Licensing in a virtualized world...Somewhat of a pain
Not only do you have to manage your vmware licenses, you have to make sure the VM's you are running are properly covered under an associated OS license. I haven't really seen an elegant solution to this type of conundrum. So I needed to create a script to look @ all my ESX hosts and see how many physical sockets they have and to see if there were Windows VM's running on them.
This way I could true up which ESX hosts I needed to license Windows Datacenter processor licenses against. The same type logic could be applied for RHEL licenses. Anyway, without further ado, here is the snippet I wrote up:
This way I could true up which ESX hosts I needed to license Windows Datacenter processor licenses against. The same type logic could be applied for RHEL licenses. Anyway, without further ado, here is the snippet I wrote up:
$vmhosts = Get-vmhost $LicenseData = @() Foreach ($vmhost in $vmhosts) { $NewDataSet = "" | Select Name, NumSockets,Cluster, Windows $NewDataSet.name = $vmhost.name $NewDataSet.numSockets = $vmhost.extensiondata.hardware.cpuinfo.numcpupackages $NewDataSet.Cluster = $vmhost.parent.name $NewDataSet.Windows = If (($vmhost | Get-VM | where {$_.guest -match "Windows"}).count -gt 0){"Yes"}Else{"No"} $LicenseData += $NewDataSet }
This'll return data in this type format:
Name of ESX host
Number of physical sockets
Cluster or parent node name
If a windows vm is found yes is returned, otherwise no.
Comments