- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Pyvmomi 创建一个新的虚拟机。我成功创建了带有 RAM 和 CPU 的虚拟机,但我找不到有关如何创建带有附加磁盘的虚拟机的文档。我希望创建一个具有 20GB 精简配置 HDD 的虚拟机,但我找不到有关如何执行此操作的文档。
这就是我正在使用的:
import atexit
import hashlib
import json
import random
import time
import requests
from pyVim import connect
from pyVmomi import vim
from tools import tasks
vc_host = 'vc.example.com'
vc_user = 'john@example.com'
vc_ds = 'datastore1'
vc_password = 'secret'
def create_vm(name, service_instance, vm_folder, resource_pool,datastore):
vm_name = 'VM-' + name
datastore_path = '[' + datastore + '] ' + vm_name
# bare minimum VM shell, no disks. Feel free to edit
vmx_file = vim.vm.FileInfo(logDirectory=None,
snapshotDirectory=None,
suspendDirectory=None,
vmPathName=datastore_path)
config = vim.vm.ConfigSpec(
name=vm_name,
memoryMB=128,
numCPUs=1,
files=vmx_file,
guestId='dosGuest',
version='vmx-07'
)
print "Creating VM {}...".format(vm_name)
task = vm_folder.CreateVM_Task(config=config, pool=resource_pool)
tasks.wait_for_tasks(service_instance, [task])
def main():
name = 'testvm'
service_instance = connect.SmartConnect(host=vc_host,
user=vc_user,
pwd=vc_password,
)
if not service_instance:
print("Could not connect to the specified host using specified "
"username and password")
return -1
atexit.register(connect.Disconnect, service_instance)
content = service_instance.RetrieveContent()
datacenter = content.rootFolder.childEntity[0]
vmfolder = datacenter.vmFolder
hosts = datacenter.hostFolder.childEntity
resource_pool = hosts[0].resourcePool
create_vm(name, service_instance, vmfolder, resource_pool, vc_ds)
return 0
# Start program
if __name__ == "__main__":
main()
最佳答案
首先创建一个虚拟机:
datastore_path = '[datastore1] vm1'
vmx_file = vim.vm.FileInfo(logDirectory=None,
snapshotDirectory=None,
suspendDirectory=None,
vmPathName=datastore_path)
config = vim.vm.ConfigSpec(
name=vm_name,
memoryMB=2048,
numCPUs=cpu,
files=vmx_file,
guestId=None,
version='vmx-07'
)
hostobj = <get the esx host object>
vm_folder = hostobj.vm[0].parent
resource_pool = hostobj.vm[0].resourcePool
task = vm_folder.CreateVM_Task(config=config, pool=resource_pool)
然后通过添加所需设备来重新配置虚拟机:
spec = vim.vm.ConfigSpec()
scsi_ctr = vim.vm.device.VirtualDeviceSpec()
scsi_ctr.operation = vim.vm.device.VirtualDeviceSpec.Operation.add
scsi_ctr.device = vim.vm.device.VirtualLsiLogicController()
scsi_ctr.device.deviceInfo = vim.Description()
scsi_ctr.device.slotInfo = vim.vm.device.VirtualDevice.PciBusSlotInfo()
scsi_ctr.device.slotInfo.pciSlotNumber = 16
scsi_ctr.device.controllerKey = 100
scsi_ctr.device.unitNumber = 3
scsi_ctr.device.busNumber = 0
scsi_ctr.device.hotAddRemove = True
scsi_ctr.device.sharedBus = 'noSharing'
scsi_ctr.device.scsiCtlrUnitNumber = 7
unit_number = 0
controller = scsi_ctr.device
disk_spec = vim.vm.device.VirtualDeviceSpec()
disk_spec.fileOperation = "create"
disk_spec.operation = vim.vm.device.VirtualDeviceSpec.Operation.add
disk_spec.device = vim.vm.device.VirtualDisk()
disk_spec.device.backing = \
vim.vm.device.VirtualDisk.FlatVer2BackingInfo()
disk_spec.device.backing.diskMode = 'persistent'
disk_spec.device.backing.fileName = '[%s] %s/%s.vmdk' % \
( ds_name, client, vmdk_name )
disk_spec.device.unitNumber = unit_number
disk_spec.device.capacityInKB = <size in kb>
disk_spec.device.controllerKey = controller.key
dev_changes = []
dev_changes.append( scsi_ctr )
dev_changes.append( disk_spec )
spec.deviceChange = dev_changes
vmobj.ReconfigVM_Task( spec=spec )
关于python - 如何使用 Pyvmomi 创建带有附加 vmdk 磁盘的虚拟机(非克隆)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27157246/
我在 Mac 10.6.6 上使用 VM Ware Fusion 3.1.2。我创建了一个 Windows 7 镜像,但是当我检查构成该镜像的文件时,有 21 个“范围”文件——例如名称类似的文件 W
谁能帮我解决这个错误!!! 以下是我的机器上安装的版本: Vagrant 2.2.0 虚拟框:5.0.16r105871 gem :2.7.5 Chef 开发套件版本:2.0.28 PS C:\ngi
谁能帮我解决这个错误!!! 以下是我的机器上安装的版本: Vagrant 2.2.0 虚拟框:5.0.16r105871 gem :2.7.5 Chef 开发套件版本:2.0.28 PS C:\ngi
VirtualBox 能够压缩(减小尺寸).vdi图像,但不能使用 .vmdk磁盘镜像。但是我们可以压缩.vmdk文件,如果我们: 分离 转换为 .vdi 紧凑型 转换回 .vmdk 再次连接到原来的
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
有人在将 VMDK 文件转换为 qcow 格式时遇到以下问题吗? Write failed to dstDisk [####] server1/server1.vmdk curSector 14679
我试图了解 vmware bios 如何在加载之前找到 MBR。 在物理硬盘中这很容易 - MBR 位于第一个扇区。 但是 .. 在 VM 中会发生什么? 我创建了 2 个 VM - 在第一个 vmd
我有一台 MacBook Air,空间很宝贵。我有一个 vagrant 实例,它的大小从 2 GB 增加到 8 GB。 我在寻找减少磁盘大小的选项时发现了一些 VDI 教程,但实际文件是 .vmdk
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我尝试使用 yocto sumo 构建一个自定义 linux 发行版,其中将包括 docker。我下载了 yocto 核心,并添加了元虚拟化层(来自 sumo 分支)。我能够成功构建和运行它。问题是我
有什么方法可以从 Python 查看 vmdk 文件的内容,并能够从中读取文件? (我不需要写信给它)。如果没有,是否有任何方法可以在主机上挂载 vmdk 文件,或者通常有任何其他方法可以在不将 vm
我已经使用以下命令将 VMDK 文件上传到 S3 存储桶: s3cmd put /root/Desktop/centos-ldaprad.vmdk --multipart-chunk-size-mb=
我有一个由 Vmware Station 创建的虚拟机并使用了 vmdk 驱动器。然后在Ubuntu系统下通过guestmount将vhdx文件挂载到一个目录下。一切正常,我可以通过挂载目录访问 vm
任何人都可以指点我一些有关如何使用 Iso 创建 Vmware 环境的文档。 例如,有一个人制作了自己的 Ubuntu 版本,并添加了大量额外的程序。在尝试之前,我将使用 vmware 服务器对其进行
尽管 ec2-import-instance 工具支持 vmdk 磁盘格式,但每次尝试在 vmdk 文件上运行该命令时,都会出现以下错误: ERROR: File uses unsupport
我有一些旧 Linux 文件系统的平面文件格式的旧镜像。 Bochs 可以使用它们,但我需要用 Virtual Box 运行它们。 Virtual Box 无法使用这种格式的图像,因此我需要将这些图像
希望有人可以帮助我。确实需要回去工作。 今天早上,我的 120GB MacBook Air 已满,系统提示我删除一些文件。本周我一直在另一台虚拟机上使用 Kali,因此决定删除它以继续开发我的 Lar
我正在尝试使用 ovftool 将 vmdk 文件转换为 ova 这是我输入的命令。 C:\Program Files\VMware\VMware OVF Tool>ovftool -st=vmdk
我试图通过使用以下命令在 linux mint 中使用 poweriso 提取 vmdk 文件, poweriso extract sample-disk1.vmdk / -od /home/loca
我正在尝试使用 Pyvmomi 创建一个新的虚拟机。我成功创建了带有 RAM 和 CPU 的虚拟机,但我找不到有关如何创建带有附加磁盘的虚拟机的文档。我希望创建一个具有 20GB 精简配置 HDD 的
我是一名优秀的程序员,十分优秀!