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.

Santiago
Los ordenadores siempre han sido una gran parte de mi vida. Decidí crear este sitio para plasmar todo lo aprendido durante tantos años trasteando con estás maquinas. Cuando no estoy editando mi web, me dedico a reparar aerogeneradores.

Deja un comentario