Aporto algunas funciones para manipular la configuración de de un Clúster VMware DRS, los grupos y las reglas de afinidad.
Imaginaros que queremos cambiar de forma masiva VMs de grupos de afinidad. Si queremos automatizar este proceso, nos podemos currar con VMware Orquestrator un workflow para el caso, tirando de funciones que vienen ya definidas y algo de javascript, o nos lo trabajamos con PowerCLI. Os paso algunas ideas para el segundo caso, a ver si les sacáis utilidad.
Lo primero que necesitamos, es importar un módulo que contiene todas las funciones. Os dejo el link donde está la última versión DRSRule
Extraemos el contenido en uno de los directorios de modulos de PowerCli. Para saber cuáles son estos directorios, desde PowerCLI ejecutamos $env:PSModulePath
PowerCLI C:\> $env:PSModulePath D:\Users\sean.torres\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Modules
Ahora ya podemos usar las funciones del módulo DRSRule, para ello lo importamos al principio del script y listo:
Add-PSSnapin VMware.VimAutomation.Core Import-Module DRSRule
Podemos obtener ayuda sobre todas las funciones disponibles con Get-Help about_DRSRule
Os pongo un par de casos, para quitar y añadir VMs de los Grupos DRS. Necesitamos tener definidas las variables $VMS, $CLUSTER, $DRS_Group_Origen, $DRS_Group_Destino:
# # ---- Quitamos las vms del GrupoDRS Origen. Necesitamos borrar el grupo y crearlo de nuevo. $VMS_Origen_new = (Compare-Object $(get-content $VMS) $(Get-DrsVMGroup -Cluster $CLUSTER -Name $DRS_Group_Origen).VM).InputObject Write-Host "Quitando VMs de GrupoDRS $DRS_Group_Origen..." Remove-DrsVMGroup -Cluster $CLUSTER -Name $DRS_Group_Origen -confirm:$false |out-null New-DrsVMGroup -Name $DRS_Group_Origen -VM $VMS_Origen_new -Cluster $CLUSTER |out-null # ---- Añadimos las vms al GrupoDRS Destino Write-Host "Añadiendo VMs a GrupoDRS $DRS_Group_Destino..." foreach ($VM in (get-content $VMS)){ $CLUSTER = Get-Cluster -VM $VM Get-DrsVMGroup -Cluster $CLUSTER -Name $DRS_Group_Destino | Set-DrsVMGroup -VM $VM -Append |out-null } # ---- Aplicar DRS Recomendation para que se muevan las VMs Get-DrsRecommendation -Cluster $CLUSTER -Refresh | Apply-DrsRecommendation | out-null #
Gracias por compartir 😉
Muy buen aporte crack!