我正在使用pyVmomi在Python2.6中编写脚本,并使用其中一种连接方法:
service_instance = connect.SmartConnect(host=args.ip,
user=args.user,
pwd=args.password)
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
Run Code Online (Sandbox Code Playgroud)
有趣的是,我没有使用pip安装urllib3(但它位于/usr/lib/python2.6/site-packages/requests/packages/urllib3/).
我按照这里的建议尝试过
import urllib3
...
urllib3.disable_warnings()
Run Code Online (Sandbox Code Playgroud)
但这并没有改变任何事情.
我使用下面的代码来添加配置DistributedVirtualSwitch
到现有VM 的NIC (通过pyVmomi):
def __AddNIC(si, vmconf_dict, network_name):
vm = __get_vm(si, vmconf_dict)
print " Network label : " + network_name
devices = []
nicspec = vim.vm.device.VirtualDeviceSpec()
nicspec.operation = vim.vm.device.VirtualDeviceSpec.Operation.add
nicspec.device = vim.vm.device.VirtualVmxnet3()
nicspec.device.wakeOnLanEnabled = True
nicspec.device.deviceInfo = vim.Description()
nicspec.device.connectable = vim.vm.device.VirtualDevice.ConnectInfo()
nicspec.device.connectable.startConnected = True
nicspec.device.connectable.allowGuestControl = True
network_objref = _get_mor_by_property(si, vim.dvs.DistributedVirtualPortgroup, network_name)
dswitch_port_connection = vim.dvs.PortConnection(
portgroupKey=network_objref.key,
switchUuid=network_objref.config.distributedVirtualSwitch.uuid
)
nicspec.device.backing = vim.vm.device.VirtualEthernetCard.DistributedVirtualPortBackingInfo()
nicspec.device.backing.port = dswitch_port_connection
devices.append(nicspec)
vmconf = vim.vm.ConfigSpec(deviceChange=devices)
task = vm.ReconfigVM_Task(vmconf)
tasks.wait_for_tasks(si, [task])
Run Code Online (Sandbox Code Playgroud)
我收到以下异常:
switchUuid = network_objref.config.distributedVirtualSwitch.uuid …
我一直在翻阅官方 VMWare pyvmomi API 的文档和示例,在我的一生中,我找不到一种明显的方法来从 ESXi 服务器中删除 VM。
任何人都可以提供一个例子或向我指出已经实施了这一点的人 - 似乎唯一的选择是自己推出一些可以
我认为每个部分都在那里,但我真的希望有人能指出我正确的方向。
下面是我认为应该用于在使用 pyvmomi 和虚拟中心从模板克隆虚拟机时修改 Windows 虚拟机的以太网适配器的网络适配器 IP 的代码。不起作用,虚拟机克隆但网络适配器未修改。我似乎只是找到了假设根本没有适配器并创建新适配器的示例。我可以使用一些帮助来弄清楚我做错了什么:
def clone_vm(
content, template, vm_name, si, ip,
datacenter_name, vm_folder, datastore_name,
cluster_name, resource_pool, power_on):
"""
Clone a VM from a template/VM, datacenter_name, vm_folder, datastore_name
cluster_name, resource_pool, and power_on are all optional.
"""
# if none git the first one
datacenter = get_obj(content, [vim.Datacenter], datacenter_name)
if vm_folder:
destfolder = get_obj(content, [vim.Folder], vm_folder)
else:
destfolder = datacenter.vmFolder
if datastore_name:
datastore = get_obj(content, [vim.Datastore], datastore_name)
else:
datastore = get_obj(
content, [vim.Datastore], template.datastore[0].info.name)
# if None, get the …
Run Code Online (Sandbox Code Playgroud) 我正在尝试习惯 Python 和 VMware vSphere API Python 绑定 (pyVmomi)。我尝试理解每个组件的用途。pyVmomi 中 pyVim 的用途是什么?据我了解,pyVim 用于与虚拟化管理对象管理基础设施(VMOMI)的连接处理(创建、删除...)。它是否正确?
谢谢你并致以最诚挚的问候,
帕特里克
我最近开始使用pyvmomi在将实例迁移到AWS之前获取vmware服务器的详细清单.
在vcenter Web界面或vsphere客户端中,我可以检查实例并查看其磁盘,它会告诉我磁盘大小(已配置)以及它的使用量(已使用的存储空间).
从样品GitHub库(https://github.com/vmware/pyvmomi-community-samples)我可以很快学会如何获得对实例的信息,因此让磁盘大小是微不足道的(有一个在这样即使一个问题显示获取驱动器的简单方法 - 如何使用PyVMomi获取VMWare VM磁盘的大小),但我无法弄清楚如何获取Web /客户端可以显示的实际使用的存储.
那么,如何获取给定实例磁盘的已用空间?
我正在尝试运行从这里的示例中收到的以下代码
from __future__ import print_function
import atexit
from pyVim.connect import SmartConnectNoSSL, Disconnect
from pyVmomi import vim
from tools import cli
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ModuleNotFoundError: No Module named 'pyVim.connect'
Run Code Online (Sandbox Code Playgroud)
有问题的软件包来自此处并使用以下方法安装:
pip install pyvmomi
Run Code Online (Sandbox Code Playgroud)
我安装这些软件包的方式有问题吗?
我想了解pyvmomi中的vim.
据我所知,vim是这样导入的:from pyvmomi import vim
我试图找到pyvmomi中定义vim的位置,但我还没有找到它.
我尝试了以下步骤:
>>> inspect.getfile(vim)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/inspect.py", line 420, in getfile
'function, traceback, frame, or code object'.format(object
TypeError: <pyVmomi.VmomiSupport.LazyModule object at 0xb50690> is not a module, class, method, function, traceback, frame, or code object
>>> globals()['vim']
<pyVmomi.VmomiSupport.LazyModule object at 0xb50690>
>>> locals()['vim']
<pyVmomi.VmomiSupport.LazyModule object at 0xb50690>
>>> vim
Run Code Online (Sandbox Code Playgroud)
但是,我没有得到如何在LazyModule中定义vim
我想了解
https://github.com/vmware/pyvmomi/tree/master/docs/vim
中列出的数据对象最初是在pyVmomi中定义的.
我正在寻找 ESX/ESXi 特定命令/示例 pyvmomi API 来确定虚拟机管理程序上的系统内存信息 - 可用/总/已使用。