用于python的vmware vSphere连接器模块
vconnector的Python项目详细描述
vconnector-用于python的vmware vSphere连接器模块
vconnector是一个包装器模块 pyVmomi VMware vSphere bindings, 它提供了连接和检索 来自vmware vSphere服务器的对象。
vconnector的目的是为 构建复杂的应用程序。vconnector还可用于 管理vSphere环境的用户/密码/主机凭据 使用sqlite数据库,然后可以在 需要访问vSphere环境的多个应用程序 通过一个公共接口。
贡献
vconnector托管在 Github。请捐款 通过报告问题、建议功能或发送修补程序 使用拉取请求。
安装
安装vconnector的最简单方法是使用pip:
$ pip install vconnector
为了从安装vconnector的最新版本 github存储库只需执行以下命令即可:
$ git clone https://github.com/dnaeon/py-vconnector.git
$ cd py-vconnector
$ python setup.py install
使用vconnector模块的应用程序
使用vconnector cli工具
使用vconnector-cli工具,您可以管理用户/密码/主机 vSphere环境的凭据。vconnector-cli工具 将此信息存储在sqlite数据库文件中, 这也使得在应用程序之间共享变得容易。
首先,通过执行 下面的命令:
$ vconnector-cli init
下面是如何向vconnector数据库添加新vSphere主机:
$ vconnector-cli -H vc01.example.org -U root -P p4ssw0rd add
这里是如何更新已经存在的VSCOPE主机 从vconnector数据库:
$ vconnector-cli -H vc01.example.org -U root -P newp4ssw0rd update
下面是如何使用vconnector cli删除vSphere主机:
$ vconnector-cli -H vc01.example.org remove
下面是如何使用vconnector cli启用vSphere主机:
$ vconnector-cli -H vc01.example.org enable
下面是如何禁用vSphere主机:
$ vconnector-cli -H vc01.example.org disable
下面是如何从 vconnector数据库:
$ vconnector-cli get +---------------------------+---------------------+--------------+-----------+ | Hostname | Username | Password | Enabled | +===========================+=====================+==============+===========+ | vc01.example.org | root | p4ssw0rd |0| +---------------------------+---------------------+--------------+-----------+
使用vconnector api
下面是使用vconnector模块api的几个示例。
连接到vSphere主机:
>>>fromvconnector.coreimportVConnector>>>client=VConnector(...user='root',...pwd='p4ssw0rd',...host='vc01.example.org'...)>>>client.connect()
从vSphere主机断开连接:
>>>client.disconnect()
重新连接到vSphere主机:
>>>client.reconnect()
如何获取所有^{tt6}的VMware vSphere View。$ 托管对象:
>>>from__future__importprint_function>>>fromvconnector.coreimportVConnector>>>client=VConnector(...user='root',...pwd='p4ssw0rd',...host='vc01.example.org'...)>>>client.connect()>>>vms=client.get_vm_view()>>>print(vms.view)(ManagedObject)['vim.VirtualMachine:vm-36','vim.VirtualMachine:vm-129','vim.VirtualMachine:vm-162','vim.VirtualMachine:vm-146','vim.VirtualMachine:vm-67','vim.VirtualMachine:vm-147','vim.VirtualMachine:vm-134','vim.VirtualMachine:vm-88']>>>client.disconnect()
如何通过特定属性获取Managed Object,例如 名称为esxi01.example.org:
的ESXi主机的托管对象>>>from__future__importprint_function>>>importpyVmomi>>>fromvconnector.coreimportVConnector>>>client=VConnector(...user='root',...pwd='p4ssw0rd',...host='vc01.example.org'...)>>>client.connect()>>>host=client.get_object_by_property(...property_name='name',...property_value='esxi01.example.org',...obj_type=pyVmomi.vim.HostSystem...)>>>print(host.name)'esxi01.example.org'>>>client.disconnect()
如何收集vSphere Managed Objects的属性,例如get 所有^{tt12}的name和capacity属性$ 托管对象:
>>>from__future__importprint_function>>>importpyVmomi>>>fromvconnector.coreimportVConnector>>>client=VConnector(...user='root',...pwd='p4ssw0rd',...host='vc01.example.org'...)>>>client.connect()>>>datastores=client.get_datastore_view()>>>result=client.collect_properties(...view_ref=datastores,...obj_type=pyVmomi.vim.Datastore,...path_set=['name','summary.capacity']...)>>>print(result)[{u'summary.capacity':994821799936L,u'name':'datastore1'}]>>>client.disconnect()