VMware PowerCLI: secuencia de comandos para crear grupos de puertos

Hola y bienvenidos a todos los administradores de VMware. Para los pocos de nosotros que tenemos un entorno VMware a escala empresarial con cientos de VLAN y servidores, configurar una nueva VLAN en todos nuestros hosts ESXi puede ser una tarea abrumadora.

Es por eso que se me ocurrió este script que nos facilitará la vida y agregará la nueva VLAN / Network / PortGroup a todos los hosts ESXi que forman parte de un clúster específico.

 Add-PSSnapin VMware.VimAutomation.Core
 #Variables
 $viserver = "vcenter.lab.local"
 $cluster = "Production"
 $vSwitch = "vSwitch0"
 $PGName = "VMXNET-VLAN-200"
 $PGVLANID = "200"

 Connect-VIserver $viserver -User "user" -Password "password"
 $vmhosts = Get-Cluster $cluster | Get-VMhost

 ForEach ($vmhost in $vmhosts)
 {
 Get-VirtualSwitch -VMhost $vmhost -Name $vSwitch | New-VirtualPortGroup -Name $PGName -VlanId $PGVLANID
 }

Antes de ejecutar este script y disfrutar del trabajo que se hace para nosotros para variar, analicémoslo y veamos qué hace cada línea.

Add-PSSnapin VMware.VimAutomation.Core – agrega el complemento PowerCLI a la sesión de PowerShell para que podamos aprovechar todos los comandos de la CLI.

$ viserver = “vcenter.local” – especifica el servidor vCenter al que queremos conectarnos
$ cluster = “Producción” : Especifica el clúster del que todos los hosts ESXi forman parte
$ vSwitch = “vSwitch0” – especifica el vSwitch al que queremos agregar las nuevas VLAN (redes / grupos de puertos)
$ PGName = “VMXNET-VLAN-200” – aquí especificamos el nombre de la nueva VLAN / Red / PortGroup
$ PGVLANID = “200” – y aquí es donde colocamos la ID de VLAN (componente más importante)

Ahora que todas nuestras variables están en su lugar, comencemos a crear los nuevos grupos de puertos.

Connect-VIserver $ viserver -User “lab.local admin” -Password “1234567” – En esta línea nos conectamos al servidor vCenter y proporcionamos el nombre de usuario y la contraseña para que no recibamos ningún mensaje.

$ vmhosts = Get-Cluster $ cluster | Get-VMhost – Aquí obtenemos todos los recursos del clúster y, más específicamente, recuperamos todos los ESXis y los enviamos como una matriz a una variable llamada $ vmhosts.

Ahora que hemos recuperado toda nuestra información, es hora de crear realmente los grupos de puertos:

ForEach ($vmhost in $vmhosts)
 {
      Get-VirtualSwitch -VMhost $vmhost -Name $vSwitch | New-VirtualPortGroup -Name $PGName -VlanId $PGVLANID
 }

Aquí entramos en un Para cada lazo. Para cada elemento de la matriz $ vmhosts, ejecutamos el New-VirtualPortGroup comando con las variables que declaramos en la primera sección.

¡Eso es! Simple, ¿no es así? Gracias por tomarse el tiempo de leer este tutorial y espero que ayude a todos a tener un día más productivo.

Deja un comentario