Hi Luc,
i ham trying to create vm using
com.vmware.vcenter.vm
can you please suggest if this is the right way of creating spec.i want to use create method.
$cred=Get-Credential
connect-cisserver -server vcsa-01a.corp.local -Credential $cred
$vmapi=Get-CisService -Name "com.vmware.vcenter.vm"
$create_spec=$vmapi.Help.create.spec.CreateExample()
$create_spec.guest_os="RHEL_8_64"
$create_spec.name="test"
$create_spec.cpu=@("count=2";"cores_per_socket=1")
#$create_spec.cpu
$create_spec.memory=@("size_MiB=1024","hot_add_enabled=$true")
$create_spec.disks="10GB"
$create_spec.nics="2"
$vmapi.create($create_spec)
It is a bit more complex than that.
You have to specify the placement and disks and nics need a hash table of their own.
$clusterName = 'cluster'
$folderName = 'TestFolder'
$pgName = 'TestPG'
$vmName = 'TestVM'
$cred = Get-Credential
Connect-CisServer -Server vcsa-01a.corp.local -Credential $cred
$clusterapi = Get-CisService -Name 'com.vmware.vcenter.cluster'
$dsapi = Get-CisService -Name 'com.vmware.vcenter.datastore'
$folderapi = Get-CisService -Name 'com.vmware.vcenter.folder'
$netapi = Get-CisService -Name 'com.vmware.vcenter.network'
$vmapi=Get-CisService -Name 'com.vmware.vcenter.vm'
$create_spec=$vmapi.Help.create.spec.Create()
$create_spec.placement = @{
datastore = ($dsapi.list() | where{$_.Name -eq $dsName}).datastore.Value
cluster = ($clusterapi.list() | where{$_.Name -eq $clusterName}).cluster.Value
folder = ($folderapi.list() | where{$_.Name -eq $folderName}).folder.Value
}
$create_spec.guest_os="RHEL_8_64"
$create_spec.name = $vmName
$create_spec.cpu=@{
count = 2
cores_per_socket = 1
}
$create_spec.memory=@{
size_MiB = 1024
hot_add_enabled = $true
}
$create_spec.disks = @(
@{
new_vmdk = @{
capacity = 10GB
}
}
)
$create_spec.nics = @(
@{
type = 'E1000'
backing = @{
network = ($netapi.list() | where{$_.Name -eq $pgName}).network.Value
type = 'STANDARD_PORTGROUP'
}
},
@{
type = 'E1000'
backing = @{
network = ($netapi.list() | where{$_.Name -eq $pgName}).network.Value
type = 'STANDARD_PORTGROUP'
}
}
)
$vmapi.create($create_spec)
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
thanks Luc i m checking this .