Merge pull request #318 from doogleit/feature/set-clusterdpm

Sample script for DPM configuration
This commit is contained in:
Kyle Ruddy
2019-11-01 10:01:08 +01:00
committed by GitHub

View File

@@ -0,0 +1,63 @@
<#
.NOTES
Script name: Set-ClusterDpm.ps1
Created on: 10/10/2019
Author: Doug Taliaferro, @virtually_doug
Description: Configures Distributed Power Management (DPM) on a cluster.
Dependencies: None known
===Tested Against Environment====
vSphere Version: 6.7
PowerCLI Version: 11.3.0
PowerShell Version: 5.1
OS Version: Windows 7, 10
Keyword: Cluster, DPM
.SYNOPSIS
Configures Distributed Power Management (DPM).
.DESCRIPTION
Enables/disables Distributed Power Management (DPM) for one or more clusters and optionally sets the automation level.
.PARAMETER Clusters
Specifies the name of the cluster(s) you want to configure.
.PARAMETER DpmEnabled
Indicates whether Distributed Power Management (DPM) should be enabled/disabled.
.PARAMETER DpmAutomationLevel
Specifies the Distributed Power Management (DPM) automation level. The valid values are 'automated' and 'manual'.
.EXAMPLE
Set-ClusterDpm -Cluster 'Cluster01' -DpmEnabled:$true
.EXAMPLE
Get-Cluster | Set-ClusterDpm -DpmEnabled:$true -DpmAutomationLevel 'automated'
#>
[CmdletBinding()]
param (
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[Alias('Name')]
[string[]]$Clusters,
[Parameter(Mandatory=$true)]
[bool]$DpmEnabled,
[Parameter(Mandatory = $false)]
[ValidateSet('automated','manual')]
[string]$DpmAutomationLevel
)
Begin {
# Create a configuration spec
$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$spec.dpmConfig = New-Object VMware.Vim.ClusterDpmConfigInfo
$spec.dpmConfig.enabled = $DpmEnabled
if ($DpmAutomationLevel) {
$spec.dpmConfig.defaultDpmBehavior = $DpmAutomationLevel
}
}
Process {
ForEach ($cluster in $Clusters) {
# Configure the cluster
(Get-Cluster $cluster).ExtensionData.ReconfigureComputeResource_Task($spec, $true)
}
}