VMware Cloud Community
gmitch64
Enthusiast
Enthusiast
Jump to solution

Creating Empty Cluster Host and Guest Groups

I'm working on a script to pre-build several clusters. In the past, I've created groups and rules via PoweCLI for existing clusters, so there are hosts and guests available. What I'm trying to do now, is create the groups (and then the rules) for an empty cluster that doesn't have any hosts or guests.

Is it possible to create an empty host and/or guest group? I know that you can't do it in the UI, nor can you remove the last member from one of the groups. I'd have thought that there might be some PowerCLI magic to create empty groups, but I can't seem to find anything (and I'm just back from vacation, so my google-fu should be strong today, but alas, it seems not).

I could create a virtual ESXi host on our test clusters, and add it to the cluster I'm building, and do the same with a Linux guest, but it seems messy, and it's a manual process to remove it at the end of the day when there are 'real' hosts and guests in the cluster, which is what I'm trying to get away from here.

Does anyone have any pointers or suggestions?

Thanks

Graham

0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

Yes, you can, but you will need to use the API method.

Something like this for example

$dcName = 'MyDC'

$clusterName = 'TestCluster'

$ruleName = 'Rule1'

$vmGroupName = 'VmGroup1'

$hostGroupName = 'HostGroup1'


$dc = Get-Datacenter -Name $dcName

$cluster = New-Cluster -Name $clusterName -Location $dc -DrsMode FullyAutomated -DrsEnabled -HAEnabled


$spec = New-Object VMware.Vim.ClusterConfigSpecEx


$groupVM = New-Object VMware.Vim.ClusterGroupSpec

$groupVM.Info = New-Object VMware.Vim.ClusterVmGroup

$groupVM.Info.Name = $vmGroupName

$spec.GroupSpec += $groupVM


$groupHost = New-Object VMware.Vim.ClusterGroupSpec

$groupHost.Info = new-object VMware.Vim.ClusterHostGroup

$groupHost.Info.Name = $hostGroupName

$spec.GroupSpec += $groupHost


$rule = New-Object VMware.Vim.ClusterRuleSpec

$rule.Operation = [VMware.Vim.ArrayUpdateOperation]::add

$rule.Info = New-Object VMware.Vim.ClusterVmHostRuleInfo

$rule.Info.Name = $ruleName


$spec.RulesSpec += $rule


$cluster.ExtensionData.ReconfigureComputeResource($spec, $true)

---------------------------------------------------------------------------------------------------------

Was it helpful? Let us know by completing this short survey here.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

0 Kudos
3 Replies
gmitch64
Enthusiast
Enthusiast
Jump to solution

And it looks like the answer is....

Create a DRScluster group for vm with no vm

Off to try it, but it looks like LucD to the rescue (again).

My search-fu IS weak today....

Graham

0 Kudos
LucD
Leadership
Leadership
Jump to solution

Yes, you can, but you will need to use the API method.

Something like this for example

$dcName = 'MyDC'

$clusterName = 'TestCluster'

$ruleName = 'Rule1'

$vmGroupName = 'VmGroup1'

$hostGroupName = 'HostGroup1'


$dc = Get-Datacenter -Name $dcName

$cluster = New-Cluster -Name $clusterName -Location $dc -DrsMode FullyAutomated -DrsEnabled -HAEnabled


$spec = New-Object VMware.Vim.ClusterConfigSpecEx


$groupVM = New-Object VMware.Vim.ClusterGroupSpec

$groupVM.Info = New-Object VMware.Vim.ClusterVmGroup

$groupVM.Info.Name = $vmGroupName

$spec.GroupSpec += $groupVM


$groupHost = New-Object VMware.Vim.ClusterGroupSpec

$groupHost.Info = new-object VMware.Vim.ClusterHostGroup

$groupHost.Info.Name = $hostGroupName

$spec.GroupSpec += $groupHost


$rule = New-Object VMware.Vim.ClusterRuleSpec

$rule.Operation = [VMware.Vim.ArrayUpdateOperation]::add

$rule.Info = New-Object VMware.Vim.ClusterVmHostRuleInfo

$rule.Info.Name = $ruleName


$spec.RulesSpec += $rule


$cluster.ExtensionData.ReconfigureComputeResource($spec, $true)

---------------------------------------------------------------------------------------------------------

Was it helpful? Let us know by completing this short survey here.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
gmitch64
Enthusiast
Enthusiast
Jump to solution

Luc,

Thanks very much, that is absolutely perfect. Works like a charm. I'll wrap it in a function call, and move on to the net part. Smiley Happy

Thanks again.

Graham

0 Kudos