如何使用rbvmomi gem获取vSphere数据中心的摘要信息?

时间:2018-10-16 22:06:15

标签: vmware vsphere rbvmomi

一般而言,更好的问题应该是如何使用rbvmomi gem?我找不到任何有用的文档。我基本上只是在对每个对象进行<resource>.methods.sort - Object.methods来看看有什么可能。如果有更好的方法,我很想听听。

但是无论如何,我正在寻找摘要数据,包括:  -主机数  -虚拟机数量  -CPU线程  - 内存容量  -内存可用  - 存储容量  -使用的存储空间

这些都显示在vSphere Web Client数据中心的摘要页面上,因此,我希望可以仅通过几个API调用就可以检索到它,但是我还没有找到使用rbvmomi gem的解决方案。

这是我到目前为止所拥有的:

num_vms = 0
mem_capacity = 0      # In bytes
mem_free = 0          # In bytes
storage_capacity = 0  # In bytes
storage_free = 0      # In bytes


dc = vim.client.serviceInstance.find_datacenter('My Datacenter')

dc.vmFolder.children.count # Returns wrong number of VMs (much too low)

dc.hostFolder.children.each do |cluster|
  cpu_threads = cluster.summary.numCpuThreads
  num_hosts = cluster.summary.numHosts
  cluster.host.each do |host|
    mem_size = host.hardware.memorySize # Bytes
    mem_used = host.summary.quickStats.overallMemoryUsage # Megabytes
    mem_capacity += mem_size
    mem_free += mem_size - (mem_used * 1024 * 1024)
  end
end

dc.datastores.each do |datastore|
  next unless datastore.summary.type == 'NFS'
  storage_capacity += datastore.summary.capacity
  storage_free += datastore.summary.freeSpace
end

有没有更容易循环的更简便方法吗? 请注意,我从未获得过准确的虚拟机数量计数。

0 个答案:

没有答案