您好,我正在尝试创建一个将使用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 {$ _。名称-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属性与存储库中的图像中的uuid一起添加?
正确的。要克隆,您需要先获取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 Spec
$ 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
模块型版本prerelease名称
-----------------------------------------------
脚本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:
Minimum_size:
minimum_size_mb:
snapshot_group_id。:
container_uuid:
是的。这很敏感。没有意识到。
再次感谢您的所有帮助。
没问题!
回复
Functional","cookiepolicy.modal.level2":"Normal
Functional + analytics","cookiepolicy.modal.level3":"Complete
Functional + analytics + social media + embedded videos"}}}">