Virtualización: Cree máquinas virtuales de Hyper-V con Windows PowerShell

Si necesita crear y configurar máquinas virtuales regularmente, usar Windows PowerShell para hacerlo puede acelerar el proceso.

Neil Tucker

Ya sea que necesite probar configuraciones de servidor nuevo o estandarizados, Hyper-V le brinda un entorno rápida y eficaz ejecutar configuraciones de prueba, que se ha convertido en un entorno de laboratorio popular. La única pega es que necesita para crear y configurar máquinas virtuales (VMs) sobre una base regular.

Si está buscando una manera fácil de crear imágenes de Hyper-V, scripts de Windows PowerShell son una solución viable. La medida de lo que se pueden personalizar Windows PowerShell y su estructura de mando flexible hace apto para cualquier entorno. Cuando se combina con una estrategia de instalación desatendida o automatizados, prácticamente cualquier configuración del equipo es posible.

Configurar Windows PowerShell

Esta estrategia supone que está trabajando en un sistema Windows Server 2008 R2 que cumple los requisitos para la función Hyper-V. Después de seguir estos pasos, el sistema estará listo para Hyper-V de secuencias de comandos:

  1. Instalar la función Hyper-V y Windows PowerShell. Puede hacerlo desde el administrador de servidor o mediante la herramienta de línea de comandos de ServerManagerCmd.exe (ServerManagerCmd.exe –install Hyper-V y ServerManagerCmd.exe –install PowerShell).
  2. Configurar Windows PowerShell para permitir el uso de scripts. Esto está desactivado por defecto. Esto se puede configurar con el cmdlet Set-ExecutionPolicy (Set-ExecutionPolicyRemoteSigned).
  3. Descargue e instale el módulo de Hyper-V de Windows PowerShell. Necesita este módulo para acceder a todos los cmdlets diseñados específicamente para Windows PowerShell. De la Biblioteca de administración de PowerShell CodePlex para página de Hyper-V, descargue la versión más reciente estable, no desarrollo. Asegúrese de que el atributo de "bloque" se extrae los archivos comprimidos antes de instalarlas. Esto ejecutará secuencias de comandos de instalación sin necesidad de firmas digitales. Si realiza la instalación de Server Core, desbloquear y descomprima el archivo de módulo en otro equipo antes de copiar los archivos de instalación para el servidor. En caso contrario, necesitará herramientas adicionales para realizar estas operaciones en el servidor (la herramienta de stream.exe de SysinternalsSuite y 7-Zip).
  4. Desde un elevado indicador de comandos de Windows PowerShell, activar los cmdlets de Hyper-V importando el recién instalado module (módulo de importación HyperV). Si recibe un mensaje de error, compruebe que no se pierda un paso anterior. Si desea utilizar regularmente Windows PowerShell para administrar su entorno de Hyper-V, debe agregar el módulo de importación y ExecutionPolicy conjunto de cmdlets en un archivo de perfil de Windows PowerShell. Esto le permitirá usar los cmdlets sin tener que configurar el servidor cada vez. Siempre debe utilizar un entorno de comandos de Windows PowerShell elevado para evitar problemas al ejecutar los cmdlets.

Para comprobar se ha instalado correctamente los cmdlets y están funcionando correctamente, utilice el cmdlet Get-Command para ver una lista de los comandos disponibles (comando Get –Module Hyperv). Como con otros módulos, cada cmdlet viene con información útil sobre sus funciones y ejemplos sobre cómo utilizarlo (Get-Help New-VM –Detailed y –Examples Get-Help New-VM). Existe documentación adicional disponible en CodePlex.

Configurar la secuencia de comandos de PowerShell de Windows Hyper-V

Una vez que el entorno de Windows PowerShell está listo, puede empezar a crear nuevas máquinas virtuales. Asegúrese de que iniciar con permisos de administrador para utilizar privilegios elevados para estos comandos. La secuencia de comandos utiliza cmdlets de Hyper-V para crear una nueva VM basada en cinco variables (véase figura 1) que proporcione durante la instalación. Cada variable tiene un valor de preasignada por defecto que se utilizará si uno no está previsto.

Figura 1 descripciones de las variables definidas durante la instalación de la máquina virtual (VM) de Hyper-V.

$SRV1 Nombre VM
$SRAM Cantidad de memoria asignada a la VM
$SRV1VHD Tamaño de la unidad de disco duro virtual la máquina virtual está utilizando
$VMLOC Ubicación del lugar donde desee crear la unidad de disco duro virtual de VM
$Red1 Conexión de red virtual de VM

Después de definir esas variables, la secuencia de comandos nueva-Image.ps1 (véase figura 2) configura la red Virtual de Hyper-V mediante el valor asignado a la variable $red1. Antes de definir la nueva red privada con la nueva VMPrivateSwitchcmdlet, quitarlo con quitar-VMSwitch, si no ya existía. Esto asegura que no definir redes duplicadas con el mismo nombre.

Figura 2 Image.ps1 de nuevo el script que crea nuevas máquinas virtuales.

# This script creates a new Hyper-V machine with hard drive, memory & network resources configured. # Variables $SRV1 = Read-Host "Enter the Virtual Machine name (Press [Enter] to choose Server01): " if ($SRV1 -eq ""){$SRV1="Server01"} ; if ($SRV1 -eq $NULL){$SRV1="Server01"} $SRAM = Read-Host "Enter the size of the Virtual Machine Memory (Press [Enter] to choose 512MB): " if ($SRAM -eq ""){$SRAM=512MB} ; if ($SRAM -eq $NULL){$SRAM=512MB} $SRV1VHD = Read-Host "Enter the size of the Virtual Machine Hard Drive (Press [Enter] to choose 40GB): " if ($SRV1VHD -eq ""){$SRV1VHD=40GB} ; if ($SRV1VHD -eq $NULL){$SRV1VHD=40GB} $VMLOC = Read-Host "Enter the location of the Virtual Machine file (Press [Enter] to choose C:\HyperV): " if ($VMLOC -eq ""){$VMLOC="C:\HyperV"} ; if ($VMLOC -eq $NULL){$VMLOC="C:\HyperV"} $Network1 = Read-Host "Enter the name of the Virtual Machine Network (Press [Enter] to choose Network1): " if ($Network1 -eq ""){$Network1="Network1"} ; if ($Network1 -eq $NULL){$Network1="Network1"} # Configure Hyper-V Virtual Network remove-vmswitch $Network1 -force -erroractionsilentlycontinue new-vmprivateswitch $Network1 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV1 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV1 -size $SRV1VHD add-vmdisk -vm $SRV1 -controllerid 0 -lun 0 -path $VMLoc\$SRV1 get-vm $SRV1 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV1 | set-vmmemory -memory $SRAM get-vm $SRV1 | add-vmnic -virtualswitch $Network1

La parte final del proceso donde realmente crear la máquina virtual es simple. Crear la ubicación del directorio de la unidad de disco duro virtual (VHD). Entonces seis cmdlets crear y configurar la nueva máquina virtual.

El comando Nueva VM define la máquina y su ubicación. Nuevo VHD crea el archivo VHD y agregar VMDisk asigna a la máquina virtual. Agregar VMDrive agrega una unidad de DVD para la máquina, conjunto VMMemory define la cantidad de RAM y agregar VMNIC configura la tarjeta de red.

Una vez que haya configurado la nueva máquina virtual, puede instalar cualquier sistema operativo utilizará. También puede la secuencia de comandos y administrar el proceso de instalación del sistema operativo con Windows PowerShell. Uso de Windows PowerShell para automatizar estas tareas puede acelerar y optimizar todo el proceso, especialmente si tiene que hacerlo sobre una base regular.

Neil R. Tucker

Neil R. Tucker, MCT, MCITP, MCSE, MCDBA MCDST, tiene más de 17 años de experiencia como técnico, entrenamiento y redactor técnico. Consulta y enseña clases en SQL Server, Windows Server, Windows 7 y Windows PowerShell. También es el autor de la Microsoft Learning 50331 curso para Windows 7 Desktop técnicos de soporte.

Contenido relacionado