Create a DRScluster group for vm with no vm

As we deploy virtual centers we create  standard groups and a rule for specific app servers. Is it possible to create a vm group with no virtual machines and assign a rule. The hosts exist but the vm come later. Nice to have the groups and rule in place when we start to build out the clusters


0 Kudos
1 Reply

Currently not with the cmdlets afaik, but with the API everything is 'posh'ible.

This will create a dummy VM and VMHost group, and then create a rule with both groups.

You can adapt the groups (for example add ESXi nodes) or change the type of rule

$clusterName = 'MyCluster'

$cluster = Get-Cluster -Name $clusterName

$spec = New-Object VMware.Vim.ClusterConfigSpecEx

$newVMGroup = New-Object VMware.Vim.ClusterVmGroup

$newVMGroup.Name = 'DummyVM'

$newVMGroup.UserCreated = $True

$newVMGroup.VM = $null

$groupSpec = New-Object VMware.Vim.ClusterGroupSpec

$groupSpec.Operation = [VMware.Vim.ArrayUpdateOperation]::Add

$groupSpec.Info = $newVMGroup

$spec.GroupSpec += $groupSpec

$newVMHostGroup = New-Object VMware.Vim.ClusterHostGroup

$newVMHostGroup.Name = 'DummyVMHost'

$newVMHostGroup.UserCreated = $True

$newVMHostGroup.Host = $null

$groupSpec = New-Object VMware.Vim.ClusterGroupSpec

$groupSpec.Operation = [VMware.Vim.ArrayUpdateOperation]::Add

$groupSpec.Info = $newVMHostGroup

$spec.GroupSpec += $groupSpec

$newRule = New-Object VMware.Vim.ClusterVmHostRuleInfo

$newRule.Name = 'Dummy Rule'

$newRule.Mandatory = $true

$newRule.Enabled = $false

$newRule.UserCreated = $True

$newRule.VmGroupName = 'DummyVM'

$newRule.AffineHostGroupName = 'DummyVMHost'

$ruleSpec = New-Object VMware.Vim.ClusterRuleSpec

$ruleSpec.Info = $newRule

$spec.RulesSpec += $ruleSpec

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

Blog:  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos