一般而言,更好的问题应该是如何使用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
有没有更容易循环的更简便方法吗? 请注意,我从未获得过准确的虚拟机数量计数。