首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pyvmomi模块从.vmx和.vmdk文件创建虚拟机

使用pyvmomi模块从.vmx和.vmdk文件创建虚拟机
EN

Stack Overflow用户
提问于 2015-03-23 22:49:50
回答 2查看 3K关注 0票数 1

我一直在尝试使用Python中现有vm的.vmx和.vmdk文件创建一个新的vm,使用pyvmomi模块。我是pyvmomi的新手,没有太多关于pyvmomi的在线帮助。我已经检查了github(https://github.com/vmware/pyvmomi-community-samples/tree/298bf74446f3fcc5743d6435763ff6dc16ab4cbc/samples)中的示例代码,但没有找到相关的东西。请给我指点。

EN

回答 2

Stack Overflow用户

发布于 2015-03-24 02:01:25

假设虚拟机的名称是:1001-web1.myhost.com

那么你想放在上面的HostSystem是:host1.myesxhost.com

主机有一个名为:Local1的数据存储区

主机位于名为Prod的文件夹中

您需要将文件从虚拟机放入Local1数据存储区。我会让你弄清楚这部分的。需要将它们放在名为1001-web1.myhost.com的文件夹中

接下来,您需要在清单中找到文件夹Prod和HostSystem HostSystem,以便获得它们的ManagedObjectRef。您可以使用searchIndex.FindByDnsName查找主机,使用searchIndex.FindByInventoryPath查找文件夹(或其他几种方法)。

找到文件夹Prod后,即可使用RegisterVM_Task注册虚拟机。

代码语言:javascript
复制
si = connect.SmartConnect(xxx)
host = si.content.searchIndex.FindByDnsName(None,"host1.myesxhost.com", False)
folder = si.content.searchIndex.FindByInventoryPath(xxx)
task = folder.RegisterVM_Task(path="[Local1] 1001-web1.myhost.com/1001-web1.myhost.com.vmx", name="new vm name", asTemplate=False, pool=None, host=host)

从这里,您应该能够监视任务的进程,一旦任务成功完成,task.info.result将包含新VM的更多信息。

这是伪代码,因此语法可能会关闭,但这是您必须遵循的过程。

票数 1
EN

Stack Overflow用户

发布于 2015-09-07 15:45:48

如果您知道vmx文件的数据存储区路径,则可以使用以下命令:

代码语言:javascript
复制
from pyVim import folder

folder.Register("[datastore]TestVM/TestVM.vmx")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29213289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档