官方库链接:https://www.pydoc.io/pypi/pyvmomi-6.7.0/index.html https://vdc-download.vmware.com/vmwb-repository/dcr-public/6b586ed2-655c-49d9-9029-bc416323cb22/fa0b429a-a695-4c11-b7d2-2cbc284049dc/doc/index.html https://github.com/vmware/pyvmomi/ 以下是我看教程所写的一些代码,可以获取到一些虚机的数据,其他的功能以后会慢慢添加的。
import atexit
from pyVim.connect import SmartConnectNoSSL, Disconnect
class VMware_operation():
host = '192.168.153.131'
user = 'root'
password = '***********'
port = 443
def connect(self):
si = SmartConnectNoSSL(host=self.host, user=self.user, pwd=self.password, port=self.port)
atexit.register(Disconnect, si)
content = si.RetrieveContent()
return content
def getvmname(self): # 打印所有虚拟机名
content = self.connect()
for child in content.rootFolder.childEntity:
if hasattr(child, 'vmFolder'):
datacenter = child
vmFolder = datacenter.vmFolder
vmList = vmFolder.childEntity
for vm in vmList:
return vm.summary.config.name
def getDatastore(self): # 打印存储名
content = self.connect()
for datacenter in content.rootFolder.childEntity:
datacenters = datacenter.datastore
for ds in datacenters:
return ds.summary.name
def getvmstatus(self):
vm_name = self.getvmname()
content = self.connect()
for child in content.rootFolder.childEntity:
if hasattr(child, 'vmFolder'):
datacenter = child
vmFolder = datacenter.vmFolder
vmList = vmFolder.childEntity
for vm in vmList:
if vm.summary.config.name == vm_name:
print(vm.summary.runtime.powerState)
def getvminfo(self):
content = self.connect()
print(content.rootFolder.childEntity[0].vmFolder.childEntity[0].summary)
if __name__ == '__main__':
vmware = VMware_operation()
content = vmware.connect()
vmware.getvminfo()