您好,我正在尝试创建一个将使用UEFI并使用新的PowerShell CMDLET的VM。使用版本1 cmdlet,这是不可能的。有谁知道V2是否可以使用,还是我们仍然需要与PowerShell CMDLET一起使用API?
是的,您应该能够在v2 cmdlet中这样做。您将要先创建一个引导配置。
这是示例引导配置:
$ boot = new-nutanixObject bootconfig
$ boot.uefi_boot = $ true
$ boot.secure_boot = $ true
$ boot.boot_device_type ='disk'
$ boot.disk_address = $ diskaddress
然后将该引导配置应用于VM。
new -vm -name testboot -numvcpus 2 -memorymb 8000 -clusteruuid
谢谢。这是一个很好的开始。
我正在尝试从图像中添加磁盘。根据VM的目的,我可能有来自图像的多个磁盘。我过去所做的是:
$ base ='server_2019_uefi'
开关($ vmtype)
{
'iis'{$ vmdisks = $ base,'iisdata','iislogs'}
'sql'{$ vmdisks = $ base,'sql-2017'}
'vm'{$ vmdisks = $ base}
}
$ vmdisk = new -ntnxObject -name vmdiskdto
$ diskclonespec = new -ntnxObject -name vmdiskspecclonedto
if($ vmdisks.count -gt'1'){
$ diskimage =(get-ntnximage | where-object {$ _。名称-eq $ vmdisks [0]})
}
别的
{
$ diskimage =(get-ntnximage | where-object {$_。Names-eq $ vmdisks})
}
$ diskclonespec.vmdiskuuid = $ diskimage.vmdiskid
$ vmdisk.vmdiskclone = $ diskclonespec
if($ vmdisks.count -gt'1'){
$ vmdisk = @($ vmdisk)
foreach($ vmdisks中的$ disk){
如果($ disk -ne $ vmdisks [0]){
$ addvmdisk = new -ntnxObject -name vmdiskdto
$ adddiskclonespec = new -ntnxObject -name vmdiskspecclonedto
美元
$ adddiskclonespec.vmdiskuuid = $ adddiskimage.vmdiskid
$ addvmdisk.vmdiskclone = $ adddiskclonespec
$ vmdisk += $ addvmdisk
}
}
}
$ vmisodisk = new -ntnxObject -name vmdiskdto
$ vmisodisk.iscdrom = $ true
$ vmisodisk.isempty = $ true
所以现在我想我需要使用:
$ vmdisk = new -nutanixObject -name vmdisk
然后在存储库中的图像中添加$ vmdisk.vm_disk_clone属性?
正确的。要克隆,您需要先获取VM磁盘UUID。您可能已经很方便了。如果您不这样做,可以通过获得图像的uuid首先“ get-image”来抓住它。拥有图像后,UUID获得了“ get -image -imageId
从那里克隆的是海峡前进。
- 创建VMDiskAddress
$ clonediskAddress = new-nutanixObject vmdiskaddress
$ clonediskaffress.vmdisk_uuid =’
- 创建VMDiskSpecclone
$ vmdiskclone = new-nutanixObject vmdiskspecclone
$ vmdiskclone.disk_address = $ clonediskAddress
- 创建VMDISK对象
$ vmdisk = new-nutanixObject vmdisk
$ vmdisk.is_cdrom = $ false
$ vmdisk.vm_disk_clone = $ vmdiskclone
只是在您不想克隆的情况下也将其扔到那里。要创建净新磁盘,您将需要存储容器UUID。您可以使用“ Get-StorageContainer |convertto -json -Depth 6'。
- 创建VMDiskCreate规格
$ vmdiskcreate = new-nutanixObject vmdiskspeccreate
$ vmdiskcreate.storage_container_uuid ='
$ vmdiskcreate.size ='800000'
- 创建VMDisk
$ vmdisk = new-nutanixObject vmdisk
$ vmdisk.is_cdrom = $ false
$ vmdisk.disk_address = $ diskaddress
$ vmdisk.vm_disk_create = $ vmdiskcreate
再次感谢您的帮助。非常感谢。
我注意到了2件事,以防万一有人来到这里。首先有一个错字
$ clonediskaffress.vmdisk_uuid =’
它应该是
$ clonediskAddress.vmdisk_uuid =’
没什么大不了。
其次,没有带有new-nutanixObject的类型VMDiskSpecclone。根据帮助,只有:
可用的对象名称为vmdiskaddress,bootconfig,vmdiskspeccreate,vmdisk,vmnicspec。
当我尝试使用它时,我会遇到一个错误,说它不在字典中。
我正在使用模块的2.01版。有新版本吗?
get-module nutanix.prism.ps.cmds
模块型版本预发行名称
----------------------------------------------
脚本2.0.1 nutanix.prism.ps.cmds
打错了!
2.0.1模块将与new-NutanixObject VMDiskSpecclone一起使用
已安装的模块:
ps> get安装模块
版本名称存储库描述--------------------------------------------------------
2.0.1 nutanix.cli psgallery nutanix powershell命令
2.0.1 nutanix.prism.common psgallery nutanix prism公共模块
2.0.1 nutanix.prism.ps.cmds psgallery nutanix prism powershell命令模块
输出样本:
ps> $ vmdiskclone = new-nutanixObject vmdiskspecclone
PS> $ vmdiskclone:
disk_address:
:mage_path:
ndfs_filepath:
minumum_size:
minumum_size_mb:
snapshot_group_id。:
container_uuid:
是的。这很敏感。没有意识到。
再次感谢您的所有帮助。
没问题!