Importa ed Esporta File OVF: Sposta le VM tra Host

Nel mio attuale lavoro quotidiano, mi viene spesso chiesto di utilizzare PowerCLI per eseguire diverse operazioni in un cluster vCenter. In questo post, condividerò come ho imparato a importare un file OVF in VMware.

OVF File

Questa è una storia su una recente richiesta di assistenza da parte di un collega che doveva esportare un modello di apparecchio di monitoraggio personalizzato in un nuovo cluster vCenter in fase di costruzione. Il mio collega era sotto pressione temporale e non aveva l’accesso necessario al modello.

Se ancora non l’hai fatto, assicurati di scaricare il modulo PowerCLI tramite Install-Module -Name PowerCLI

Connessione a vCenter

Mai volendo perdere l’occasione di utilizzare PowerShell o PowerCLI, mi sono lanciato a capofitto per aiutare. Ho raccolto le informazioni necessarie dal mio collega e ho iniziato a connettermi al cluster:

PS6> Connect-VIServer -Server vcenter.mydomain.local -Credential (Get-Credential)

Questo richiede solo un attimo per essere completato. Una volta connesso, devi sapere quali verbi utilizzare. Puoi farlo utilizzando il cmdlet Get-Command -Module PowerCLI.

Ci sono due cmdlet che spiccano:

  • Export-VApp
  • Import-VApp

Entrambi questi cmdlet sembrano essere esattamente ciò di cui hai bisogno. Ma prima, poiché questa è un’esperienza di apprendimento per me e forse anche per te, approfondirò un po’ di più sull’uso corretto di ciascuno.

Esportazione di VM in un file OVF

Il cmdlet Export-VApp esporterà la VM spenta come un OVF nella directory corrente della tua sessione per impostazione predefinita se non specifichi un percorso.

I already have a path in mind so I’m going to be using the C:\Exported-OVF directory but yours may vary. Knowing this, you can then run Export-VApp against the VM template specifying the destination folder.

PS6> Export-VApp -VM 'My_VM_Template' -Destination 'C:\Exported-OVF\'

Ma c’è un problema. Non è possibile esportare una VM in esecuzione in un OVF. Nessun problema, si tratta di una correzione veloce. Modifica ulteriormente il tuo codice e assicurati di spegnere prima la VM utilizzando il cmdlet Shutdown-VMGuest.

PS6> Shutdown-VMGuest -VM 'My_VM_Template'

Con l’appliance del modello ora offline, riprendi l’esecuzione del cmdlet Export-VApp tentato in precedenza. Questo processo richiederà alcuni minuti e non era un’appliance molto grande inizialmente.

Una volta completato, dovresti avere un’appliance pronta per essere distribuita in un altro ambiente vCenter. O no?

Importazione di file OVF

Dovresti ora avere un file nel tuo sistema di file locale. E’ possibile importarlo. Per farlo, dovrai interrogare il datastore per importarlo insieme all’host VM. Puoi quindi utilizzare entrambi gli oggetti per passarli al cmdlet Import-Vapp per importarlo.

PS6> $myDatastore = Get-Datastore -Name "MyDatastore1"
PS6> $vmHost = Get-VMHost -Name "MyHost"
PS6> $vmHost | Import-vApp -Source 'C:\Exported-OVF\My_VM_Template\My_VM_Template.ovf' -Datastore $myDatastore -Force

Ma aspetta! Questo non funziona. Nel mio caso, è fallito perché non mi sono accorto che stavo effettivamente connettendomi a un altro cluster vCenter.

Qualcosa è successo quando ho iniziato ad importare l’appliance VM precedentemente esportata. Un mare di messaggi di errore rossi.

I read the error message, and sure enough, the host is not a part of a vCenter cluster and therefore does not have proper licensing to complete the import using PowerCLI. This is a limitation that VMware enforces.

Nessun problema, potevo comunque connettermi all’interfaccia web dell’host e importare manualmente utilizzando l’interfaccia HTML5. La procedura guidata ti guida attraverso ogni passaggio, assegna un nome all’appliance importata, scegli l’OVF, il datastore, il tipo di distribuzione (provisioning spesso o sottile) e verifica la configurazione. Dopo di che, seleziona Fine e l’importazione inizia.

Mentre il tentativo di importazione precedente sarebbe stato ottimo con un cluster vCenter, semplicemente non avrebbe funzionato in questa situazione. Questo ha richiesto un po’ più di tempo del previsto ma è stato semplice. Puoi leggere di più sul processo qui.

Alla fine, l’importazione è stata un successo e il mio collega ha rispettato la scadenza.

Riassunto

Fino a questo esercizio, non ero a conoscenza del fatto che non tutti i cmdlet di PowerCLI fossero disponibili in tutte le situazioni. Tuttavia, entrambi abbiamo imparato una nuova abilità e, nonostante qualche avversità imprevista, abbiamo comunque portato a termine il compito.

Troppo spesso ci affrettiamo attraverso i progetti IT cercando la soluzione “rapida”. Controlla la tua velocità, prenditi un altro minuto o due per fare domande, fermati e comprendi il problema che stai cercando di risolvere. Potresti scoprire di imparare qualcosa di nuovo.

Source:
https://adamtheautomator.com/ovf-file/