Crear VLANs con PowerCLI de forma masiva
En más de una ocasión me he encontrado con la necesidad de crear rangos grandes de VLANs (realmente Virtual Machine Port Groups con tag de VLAN) en infraestructuras sin switches distribuidos y con varios nodos ESXi. Si bien crear unas pocas VLANs en algunos nodos es una tarea rápida que no entraña mucho misterio, cuando los números suben se puede volver una tarea tediosa y en la que es muy fácil cometer errores. Es por ello que en la entrada de hoy veremos cómo crear VLANs con PowerCLI de forma masiva de forma muy sencilla.
Usando New-VirtualPortGroup para crear VLANs con PowerCLI
Antes de empezar, como siempre, podemos consultar los cmdlets disponibles para la gestión de Virtual Port Groups (VLANs) con Get-Command:
Los cmdlets resultantes son bastante autoexplicativos, pero se puede consultar la lista de verbos aprobados y su significado en la documentación de Microsoft.
Tal como dice el título de la sección nos valdremos de New-VirtualPortGroup para crear una nueva VLAN. Este cmdlet es muy sencillito y, como se puede ver en la ayuda del mismo, dispone de muy pocos parámetros:
- Name: El nombre que daremos al Virtual Port Group.
- VirtualSwitch: El Virtual Switch sobre el que crearemos la VLAN.
- VlanId: El tag de la VLAN.
Así que vamos a proceder a crear un nuevo Virtual Port Group de prueba llamado ‘sobrebits’ con VLAN tag 666:
|
|
Crear rango de VLANs con PowerCLI
Visto como crear una VLAN con PowerCLI podemos proceder a utilizar el comando para generar VLANs de forma masiva. Para ello podemos valernos de un bucle for:
|
|
Si ejecutamos el código podremos ver como se crean todos los Virtual Port Groups:
|
|
Usando el módulo New-VMHostVlan para crear VLANs masivamente con PowerCLI
Para acabar, me gustaría compartir un módulo que he creado y que yo mismo uso que básicamente utiliza lo visto en el punto anterior pero me permite ejecutarlo en modo comando y que siempre llevo cargado en mi sesión de PowerShell. Podéis descargar el módulo desde mi repositorio de GitHub.
Con New-VMHostVlan podemos utilizar los siguientes parámetros:
- Start: VLAN de inicio.
- End: VLAN final.
- Si no se especifica una únicamente crea la VLAN de -Start.
- Server: Servidor ESXi al que conectarse para crear las VLANs.
- Si no se especifica intenta crearlo en el servidor al que ya se esté conectado. Si no se está conectado a ninguno devuelve error.
- Vswitch: vSwitch en el que crear las VLANs.
- Prefix: Prefijo a especificar para el campo Name de la VLAN.
- Por defecto es ‘VLAN’.
- Ejemplo: Si especificamos '-Prefix V' crearía el nombre de las VLANs en formato V671, V672…
Así que la ejecución de la función es sencillisima, este podría ser un ejemplo:
|
|
Después de todo lo ejecutado en la entrada esto es lo que podríamos ver en nuestro nodo:
¡Espero que la entrada os sea útil y os ahorre algo de vuestro valioso tiempo!