准备环境
安装包:
pyVim==0.0.21
pyvmomi==6.7.1
命令:pip install pyVim==0.0.21 pyvmomi==6.7.1
pyvmomi连接vsphere获取vcenter操作对象:
# -*- coding: utf-8 -*-
from pyVim.connect import SmartConnectNoSSL
class VmManage(object):
def __init__(self, host, user, password, port, ssl):
self.host = host
self.user = user
self.pwd = password
self.port = port
self.sslContext = ssl
try:
self.client = SmartConnectNoSSL(host=host,
user=user,
pwd=password,
port=443
)
self.content = self.client.RetrieveContent()
self.result = True
except Exception as e:
self.result = False
self.message = e
if __name__ == '__main__':
ip = '192.11.11.11'
user = 'xw'
password = '123456'
port = 443
vm = VmManage(host=ip,
user=user,
password=password,
port=port, ssl=None)
if vm.result:
# 说明连接成功,可以使用vm.client等
pass
else:
print vm.message
有一点需要注意,在这里引入的是SmartConnectNoSSL而不是SmartConnect,差别在于前者不需要ssl证书验证,后者需要,如果没有证书验证,用前者,有证书内容,可以用后者。
如果想要获取vcenter的一些信息,首先你要对vcenter登录后的客户端内的内容有一个基本的了解。
登录成功后的图如下:
在我看来vcenter登录后,左侧内容呈现一个树状图。
可以理解为vcenter账户IP、数据中心、集群为文件夹,host主机、虚拟机为文件。登录上的vcenter账户为根目录,只有一个。
更进一步,获取这些对象和了解对象的属性字段:python pyvmomi操作VMware(二)