Costruire un'immagine Hyper - V con Packer può essere un processo complesso ma gratificante. In qualità di fornitore di Packer, ho avuto l'opportunità di lavorare con numerosi clienti per semplificare i flussi di lavoro di creazione dell'immagine. In questo blog condividerò una guida completa su come creare un'immagine Hyper - V utilizzando Packer, coprendo tutto, dalle nozioni di base alle tecniche avanzate.
Comprendere Packer e Hyper-V
Prima di immergerci nel processo, è essenziale capire cosa sono Packer e Hyper - V. Packer è uno strumento open source sviluppato da HashiCorp che automatizza la creazione di immagini di macchine per più piattaforme, tra cui Hyper - V. Hyper - V è l'hypervisor nativo di Microsoft, che consente agli utenti di creare e gestire macchine virtuali su Windows Server e Windows 10.
L'utilizzo di Packer per creare immagini Hyper-V offre diversi vantaggi. Fornisce un modo coerente e ripetibile per creare immagini, riducendo le possibilità di errore umano. Consente inoltre il controllo della versione delle configurazioni delle immagini, semplificando la gestione delle modifiche nel tempo.
Prerequisiti
Per creare un'immagine Hyper - V con Packer, avrai bisogno di quanto segue:
- Installazione dell'imballatore: Scarica e installa Packer dal sito Web ufficiale di HashiCorp. Assicurati di aggiungere Packer al PERCORSO del tuo sistema in modo da poterlo eseguire dalla riga di comando.
- Hyper-V abilitato: abilita la funzionalità Hyper - V sul tuo computer Windows. Puoi farlo tramite l'opzione "Attiva o disattiva le funzionalità di Windows" nel Pannello di controllo.
- Immagine ISO di base: avrai bisogno di un'immagine ISO del sistema operativo che desideri installare sulla macchina virtuale. Ad esempio, se stai creando un'immagine Windows Server 2019, scarica l'ISO ufficiale da Microsoft.
- Conoscenza di JSON: Packer utilizza file JSON per definire le configurazioni di creazione delle immagini. Acquisisci familiarità con la sintassi JSON se non lo sei già.
Creazione di un file di configurazione del packer
Il cuore del processo di creazione dell'immagine con Packer è il file di configurazione. Questo file, solitamente denominatotemplate.json, definisce i passaggi e le impostazioni per la creazione dell'immagine Hyper - V.
Ecco un esempio di base di atemplate.jsonfile per creare un'immagine Hyper - V di Windows Server 2019:
{ "builders": [ { "type": "hyperv-iso", "iso_url": "percorso/del/tuo/windows_server_2019.iso", "iso_checksum": "sha256:your_checksum", "vm_name": "windows_server_2019_image", "disk_size": 60000, "communicator": "winrm", "winrm_username": "Amministratore", "winrm_password": "tua_password", "winrm_timeout": "1h", "shutdown_command": "shutdown /s /t 0" } ], "provisioners": [ { "type": "powershell", "inline": [ "Installa - WindowsFeature - Nome Web - Server", "Set - Servizio - Nome W3SVC - StartupType Automatic" ] } ] }
In questa configurazione:
- IL
costruttorisezione definisce il tipo di builder (in questo caso,iperv-iso) e le impostazioni per la macchina virtuale, come l'URL ISO, la dimensione del disco e il protocollo di comunicazione. - IL
approvvigionatoricontiene i comandi da eseguire sulla macchina virtuale dopo l'installazione del sistema operativo. Qui installeremo il ruolo Server Web e imposteremo il servizio di pubblicazione sul World Wide Web per l'avvio automatico.
Creazione dell'immagine Hyper-V
Una volta creato il filetemplate.jsonfile, puoi iniziare a creare l'immagine Hyper - V utilizzando i seguenti passaggi:
- Passare alla directory: aprire un prompt dei comandi o una finestra di PowerShell e accedere alla directory in cui si trova il file
template.jsonsi trova il file. - Convalidare la configurazione: eseguire il comando seguente per convalidare il file di configurazione di Packer:
packer convalida template.json
Se la configurazione è valida, Packer restituirà un messaggio di successo. Altrimenti, verranno visualizzati gli errori che è necessario correggere.
3.Costruisci l'immagine: Se la convalida ha esito positivo, esegui il comando seguente per avviare la creazione dell'immagine:
packer build template.json
Packer avvierà quindi il processo di creazione della macchina virtuale, installazione del sistema operativo ed esecuzione dei comandi di provisioning. Questo processo potrebbe richiedere del tempo, a seconda delle risorse del sistema e della complessità della configurazione.
Tecniche Avanzate
Utilizzo delle variabili
Invece di codificare i valori nel filetemplate.jsonfile, è possibile utilizzare le variabili per rendere la configurazione più flessibile. Ad esempio, puoi definire variabili per l'URL ISO, la password e la dimensione del disco.
Ecco come è possibile modificare il precedentetemplate.jsonfile per utilizzare le variabili:
{ "variables": { "iso_url": "percorso/del/tuo/windows_server_2019.iso", "iso_checksum": "sha256:your_checksum", "winrm_password": "your_password", "disk_size": "60000" }, "builders": [ { "type": "hyperv-iso", "iso_url": "{{user `iso_url`}}", "iso_checksum": "{{user `iso_checksum`}}", "vm_name": "windows_server_2019_image", "disk_size": "{{user `disk_size`}}", "communicator": "winrm", "winrm_username": "Amministratore", "winrm_password": "{{user `winrm_password`}}", "winrm_timeout": "1h", "shutdown_command": "shutdown /s /t 0" } ], "provisioners": [ { "type": "powershell", "inline": [ "Installa - Funzionalità Windows - Nome Web - Server", "Set - Servizio - Nome W3SVC - StartupType Automatic" ] } ] }
È quindi possibile passare i valori delle variabili durante l'esecuzione del filecostruzione del packercomando:


packer build -var 'iso_url=percorso/del/nuovo/iso.iso' -var 'winrm_password=nuova_password' template.json
Post-elaborazione
Packer consente di eseguire passaggi di post-elaborazione dopo la creazione dell'immagine. Ad esempio, puoi esportare la macchina virtuale Hyper - V in un formato diverso o caricarla su un servizio di archiviazione cloud.
Ecco un esempio di aggiunta di un post-processore per esportare la macchina virtuale come file VHDX:
{ "builders": [ { "type": "hyperv-iso", //... impostazioni del builder esistenti... } ], "provisioners": [ { "type": "powershell", //... impostazioni del provisioner esistenti... } ], "post-processors": [ { "type": "hyperv-export", "output": "output/windows_server_2019_image_{{.BuildName}}.vhdx" } ] }
Diversi tipi di imballatori
In qualità di fornitore di imballatori, offriamo una varietà di imballatori per diverse applicazioni. Puoi esplorare la nostra gamma di imballatori, tra cuiPacker a compressione a foro aperto,Packer idraulico, EPacker di tensione. Queste confezionatrici sono progettate per soddisfare le esigenze specifiche di vari settori, garantendo prestazioni affidabili ed efficienti.
Conclusione
La creazione di un'immagine Hyper-V con Packer è un modo potente per automatizzare la creazione di immagini di macchine virtuali coerenti e ripetibili. Seguendo i passaggi descritti in questo blog, puoi creare le tue immagini Hyper - V su misura per le tue esigenze specifiche.
Se sei interessato a saperne di più sui nostri prodotti Packer o hai domande sul processo di costruzione dell'immagine, ti invitiamo a contattarci per una discussione sull'approvvigionamento. Il nostro team di esperti è pronto ad assistervi nella ricerca delle migliori soluzioni per le vostre esigenze aziendali.
Riferimenti
- Documentazione di HashiCorp Packer
- Documentazione di Microsoft Hyper-V
