Virtualization: Creazione di macchine virtuali Hyper-V con Windows PowerShell

Se occorre creare e configurare macchine virtuali a cadenza regolare, l'utilizzo di Windows PowerShell per tale scopo può velocizzare il processo.

Neil Tucker

Se avete bisogno di testare configurazioni server nuovo o standardizzati, Hyper-V offre un ambiente di rapidamente ed efficientemente eseguire configurazioni di test, che lo ha reso un ambiente di laboratorio popolare. Le catture sola è, è necessario creare e configurare le macchine virtuali (VM) su base regolare.

Se stai cercando un modo semplice per creare immagini di Hyper-V, script di Windows PowerShell sono una soluzione praticabile. Nella misura in cui è possibile personalizzare Windows PowerShell e la sua struttura di comando flessibile lo rende adatto a qualsiasi ambiente. Se combinato con una strategia di installazione automatizzata o incustodito, praticamente in qualsiasi configurazione di computer è possibile.

Configurare Windows PowerShell

Questa strategia si presuppone che stai lavorando su un sistema Windows Server 2008 R2 che soddisfa i requisiti per il ruolo Hyper-V. Dopo aver seguito questi passaggi, il sistema sarà pronto per gli script di Hyper-V:

  1. Installare il ruolo Hyper-V e Windows PowerShell. È possibile farlo da Server Manager o utilizzando lo strumento da riga di comando ServerManagerCmd (Servermanagercmd – Install Hyper-V e Servermanagercmd Install PowerShell).
  2. Configurare Windows PowerShell per consentire l'utilizzo di script. Questo è disattivato per impostazione predefinita. È possibile configurare con il cmdlet Set-ExecutionPolicy (Set-ExecutionPolicyRemoteSigned).
  3. Scaricare e installare il modulo di Windows PowerShell Hyper-V. Bisogno di questo modulo per accedere a tutti i cmdlet progettati specificamente per Windows PowerShell. Dalla CodePlex PowerShell Management Library per pagina Hyper-V, Scarica la versione stabile più recente, di mancato sviluppo. Assicurarsi che l'attributo di "blocco" viene rimosso dal file zippati prima di installare li. Questo verrà eseguito gli script di installazione senza bisogno di firme digitali. Se stai facendo l'installazione su Server Core, sbloccare e decomprimere il file del modulo in un altro computer prima di copiare i file di installazione per il server. In caso contrario, avrete bisogno di strumenti aggiuntivi per eseguire queste operazioni sul server (lo strumento stream.exe su SysinternalsSuite e 7-Zip).
  4. Da un Windows PowerShell prompt, importare il modulo appena installato (Import-Module HyperV) per abilitare i cmdlet di Hyper-V. Se ottenete un messaggio di errore, verificare che da non perdere un passaggio precedente. Se si intende utilizzare regolarmente Windows PowerShell per gestire l'ambiente di Hyper-V, è consigliabile aggiungere il modulo di importazione e i cmdlet Set-ExecutionPolicy in un file di profilo di Windows PowerShell. Questo vi permetterà di utilizzare i cmdlet senza dover configurare il server ogni volta. È necessario utilizzare sempre un ambiente di comando di Windows PowerShell elevato per evitare eventuali problemi in esecuzione i cmdlet.

Per verificare che avete installato con successo i cmdlet e stai correttamente funzionante, utilizzare il cmdlet Get-Command per visualizzare un elenco dei comandi disponibili per voi (Get-Command – module Hyperv). Come con altri moduli, ciascun cmdlet viene fornito con informazioni utili sulle sue funzioni ed esempi su come usarlo (Get-Help New-VM detailed e Get-Help New-VM –Examples). Non vi è documentazione aggiuntiva disponibile su CodePlex.

Configurare lo Script di PowerShell Windows Hyper-V

Una volta che l'ambiente Windows PowerShell è pronto, è possibile avviare la costruzione di nuove macchine virtuali. Assicurarsi che si avvia con autorizzazioni di amministratore per utilizzare privilegi elevati per questi comandi. Lo script utilizza il cmdlet di Hyper-V per creare una nuova macchina virtuale basata su cinque variabili (vedere Figura 1) forniscono durante l'installazione. Ogni variabile ha un valore predefinito preassegnato che verrà utilizzato se uno non è fornito.

Figura 1 descrizioni delle variabili definite durante l'installazione di virtual machine (VM) Hyper-V.

$SRV1 Nome VM
$SRAM Quantità di memoria assegnata a VM
$SRV1VHD Dimensioni del disco rigido virtuale VM sta usando
$VMLOC Posizione di cui si desidera creare il disco rigido virtuale VM
$Network1 Connessione di rete virtuale di VM

Dopo aver definito tali variabili, lo script New-Image.ps1 (vedere Figura 2) consente di configurare la rete virtuale Hyper-V, utilizzando il valore assegnato alla variabile $Network1. Prima di definire la nuova rete privata con la New-VMPrivateSwitchcmdlet, rimuoverlo con Remove-VMSwitch, indipendentemente dal fatto che già esisteva. In questo modo che non definire reti duplicati con lo stesso nome.

Figura 2 The New-Image.ps1 script che crea nuove macchine virtuali.

# 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 finale del processo dove creare effettivamente la VM è semplice. Creare il percorso della directory per il disco rigido virtuale (VHD). Allora sei cmdlet creare e configurare la nuova macchina virtuale.

Il comando New-VM definisce la macchina e la sua posizione. Nuovi VHD crea il file VHD e Add-VMDisk assegna a VM. VMDrive Add aggiunge un'unità DVD alla macchina, Set-VMMemory definisce la quantità di RAM e Add-VMNIC consente di configurare la scheda di rete.

Dopo aver configurato la nuova macchina virtuale, è possibile installare qualsiasi sistema operativo che userete. È anche possibile di script e gestire il processo di installazione del sistema operativo Windows PowerShell. Utilizzo di Windows PowerShell per automatizzare queste operazioni può accelerare e ottimizzare l'intero processo, soprattutto se si dispone di farlo su base regolare.

Neil R. Tucker

Neil R. Tucker, MCT, MCITP, MCDBA, MCSE, MCDST, ha più di 17 anni di esperienza come tecnico, trainer e scrittore tecnico. Egli consulta e insegna classi su SQL Server, Windows Server, Windows 7 e Windows PowerShell. Egli è anche autore di Microsoft Learning 50331 corso per Windows 7 Desktop Support tecnici.

Contenuto correlato