Descubre cómo crear VM de Hyper-V Server mediante PowerShell de manera sencilla, rápida y cómoda.
El despliegue de nuevos servidores o la creación de máquinas virtuales (VM desde ahora) puede ser un trabajo realmente aburrido, sobre todo cuando se tienen que desplegar muchos servidores con un perfil igual o en todo caso muy parecido.
Por eso, a lo largo de este pequeño artículo comentaremos como podemos usar la consola enriquecida de Microsoft, o sea, PowerShell, para hacer despliegues de VM a golpe de comando, teniendo además la ventaja de poder reutilizar estos comandos para generar scripts que nos permitan la automatización de los despliegues de VM.
Cómo crear VM de Hyper-V Server mediante PowerShell
Comandos de base para la creación de VM en Hyper-V Server:
PowerShell dispone de un montón de comandos para trabajar con innumerables procesos y servicios y, como no podía ser de otra manera, también dispone de comandos para la gestión de Hyper-V y sus máquinas virtuales, cosa que era de suponer porque para hablar de eso estamos haciendo este artículo.
NOTA: En las conclusiones encontrarás otros artículos de este mismo medio en los cuales se habla de Hyper-V y PowerShell.
En este caso, como estamos hablando de la creación de VM de Hyper-V con PowerShell tenemos que ir al comando “New-VM”, que es el comando destinado para este propósito y sobre el que organizaremos todo este artículo y nuestro despliegue de VM.
El comando tiene una sintaxis bastante rica y con bastantes opciones:
New-VM
[[-Name] <String>]
[[-MemoryStartupBytes] <Int64>]
[-BootDevice <BootDevice>]
[-SwitchName <String>]
-NewVHDPath <String>
-NewVHDSizeBytes <UInt64>
[-Path <String>]
[-Version <Version>]
[-Prerelease]
[-Experimental]
[[-Generation] <Int16>]
[-Force]
[-AsJob]
[-CimSession <CimSession[]>]
[-ComputerName <String[]>]
[-Credential <PSCredential[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
…
En nuestro caso no vamos a estudiarlos todos, sino que vamos a ver solo algunos y a probar algunos ejemplos.
Además, aunque se trata en otro artículo, es importante que sepamos que podemos realizar la actualización de la ayuda de PowerShell mediante el comando “Update-Help” y que podemos usar la ayuda de cada comando de PowerShell mediante el siguiente comando “Get-Help <Comando_PowerShell>”.
Primeros pasos con creación de VM de Hyper-V Server desde PowerShell:
Como con todo en la vida, debemos empezar por cosas sencillas y crear VM simples que poco a poco iremos complicando en despliegues más complejos.
Para comenzar, vamos a ver cómo crear una máquina virtual en la que simplemente daremos un nombre y una memoria RAM de inicio.
# New-VM -Name «<Nombre>» -MemoryStartupBytes <Memoria_RAM>
Donde:
- <Nombre>: Se debe cambiar por el nombre de la VM.
- <Memoria_RAM>: Se debe cambiar por el tamaño que queremos que tenga la memoria principal (RAM) en el arranque. Se puede expresar en Bytes, KB, MB, GB, y como podéis suponer, la mejor opción es hacerlo en GB para no complicarnos.
Un ejemplo de esto sería:
# New-VM -Name «VMPruebas1» -MemoryStartupBytes 1GB
NOTA: Es importante que pongamos siempre nombres, y que estos estén bien pensados y que no se vayan cambiando cada dos por tres, ya que además de usarse para identificar las VM también se usa para generar los nombres de VHD, etc.
Esta VM realmente no se habrá arrancado ni instalado nada, ni se habrán tratado temas como otros discos, la red, etc. Pero puede ser interesante usar estos comandos para poder desplegar máquinas virtuales de manera masiva a la espera de ser instaladas posteriormente.
Vamos a ver otro caso en el que vamos a dar más configuraciones.
Por ejemplo, describiendo el nombre, el tamaño de RAM y disco duro, donde se guarda la máquina virtual y donde se guarda el disco duro virtual (VHD/VHDX). Esto lo haríamos mediante el siguiente comando:
# New-VM -Name «<Nombre>» -MemoryStartupBytes <Memoria_RAM> -Path <Ruta_VM> -NewVHDPath <Ruta_Disco> -NewVHDSizeBytes <Tamaño_Disco>
Donde:
- <Nombre>: es el nombre de la VM.
- <Memoria_RAM>: El tamaño de la RAM en GB.
- <Ruta_VM>: La ruta donde quedará alojada la VM.
- <Ruta_Disco>: La ruta donde quedará alojado el disco, normalmente un nivel bajo la VM.
- <Tamaño_Disco>: El tamaño del disco duro en GB.
Y esto mismo en un ejemplo podría ser:
# New-VM -Name «<Nombre>» -MemoryStartupBytes <Memoria_RAM> -Path <Ruta_VM> -NewVHDPath ‘c:\vhd\base.vhdx’ -NewVHDSizeBytes 40GB
A esto le podemos añadir cosas como, por ejemplo:
- Generation <Numero_Generacion>: Es la generación de la VM, que puede ser 1 o 2.
- BootDevice <Dispositivo_Arranque>: Es el dispositivo del que arrancará la VM.
- SwitchName <Nombre_Swith_Virtual>: Es el dispositivo de red virtual que usará la VM.
Con esto, sin meternos en scripting, ya podríamos cumplimentar VM, pero con cuatro cambios, podremos convertir nuestros comandos en guiones para el despliegue automático, pero esa, como la de Conan Rey, es otra historia…
Conclusiones:
Tal y como has podido ver en este artículo, Cómo crear VM de Hyper-V Server mediante PowerShell, el uso de código de PowerShell para la creación de máquinas virtuales es un medio bastante eficiente para hacer despliegues de infraestructura virtualizada, especialmente cuando se tiene que desplegar un buen volumen de máquinas de manera lo más rápida posible, ya que nos ayudará de manera notable en la aceleración de estas tareas, estando limitado casi únicamente por el hardware de la máquina.
La administración de tu infraestructura virtualizada mediante el hipervisor de Microsoft nos permite la doble vertiente de la administración por consola y por entorno gráfico, siendo un poco más sencillo usar el interface gráfico, pero con esta pequeña guía podrás solventar el choque inicial de no saber por dónde empezar, pudiendo suavizar notablemente la curva de aprendizaje y teniendo la ventaja de ahorro de tiempo que nos brinda PowerShell.
Si estás interesado en este tema y quieres hacer pruebas en tu equipo de sobremesa puedes visitar el tutorial Cómo instalar Hyper-V en Windows 10, también puedes consultar el artículo Comandos Powershell para Hyper-v para aprender otros comandos de gestión de Hyper-V con PowerShell, y a gestionar tus puntos de control con Uso de PowerShell para la gestión de puntos de control en Hyper-V.
Además, puedes consultar otros tutoriales y artículos relacionados con Hyper-V.
¡Gracias por leernos!