Importeer en Exporteer OVF-bestanden: Verplaats VM’s tussen hosts

In mijn huidige baan word ik vaak gevraagd naar het gebruik van PowerCLI om verschillende taken uit te voeren in een vCenter-cluster. In deze post zal ik delen hoe ik heb geleerd om een OVF-bestand te importeren in VMware.

OVF File

Dit is een verhaal over een recent verzoek om hulp van een collega die een aangepaste monitoring-appliance-sjabloon moest exporteren naar een nieuw vCenter-cluster dat werd gebouwd. Mijn collega stond onder tijdsdruk en had geen toegang tot het sjabloon.

Als je dat nog niet hebt gedaan, zorg er dan voor dat je de PowerCLI-module downloadt via Install-Module -Name PowerCLI

Verbinding maken met vCenter

Nooit de kans willen missen om PowerShell of PowerCLI te gebruiken, sprong ik er meteen in om te helpen. Ik verzamelde de nodige informatie van mijn collega en begon met het verbinden met het cluster:

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

Dit duurt slechts een moment om te voltooien. Zodra je bent verbonden, moet je weten welke werkwoorden je moet gebruiken. Dit kun je doen met behulp van de cmdlet Get-Command -Module PowerCLI.

Er zijn twee cmdlets die opvallen:

  • Export-VApp
  • Import-VApp

Beide van deze cmdlets lijken precies te zijn wat je nodig hebt. Maar eerst, aangezien dit voor mij en misschien ook voor jou een leerervaring is, zal ik mezelf wat meer informeren over het juiste gebruik van elk.

VM’s exporteren naar een OVF-bestand

De Export-VApp cmdlet zal de uitgeschakelde VM exporteren als een OVF naar de huidige directory waarin je sessie zich bevindt, standaard als je geen pad opgeeft.

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\'

Maar er is een probleem. Je kunt geen draaiende VM exporteren naar een OVF. Geen zorgen, dit is snel op te lossen. Pas je code iets aan en zorg ervoor dat je eerst de VM afsluit met behulp van de Shutdown-VMGuest cmdlet.

PS6> Shutdown-VMGuest -VM 'My_VM_Template'

Met het sjabloonapparaat nu offline, hervat je de Export-VApp cmdlet die eerder is geprobeerd. Dit proces duurt een paar minuten en het was sowieso geen erg groot apparaat.

Als het klaar is, zou je een apparaat moeten hebben dat klaar is om in een andere vCenter-omgeving te worden ingezet. Of niet soms?

OVF-bestanden importeren

Je zou nu een bestand op je lokale bestandssysteem moeten hebben staan. Het is prima om het te importeren. Om dit te doen, moet je de datastore bevragen om het mee te importeren samen met de VM-host. Je kunt vervolgens beide objecten gebruiken om door te geven aan de Import-Vapp cmdlet om het te importeren.

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

Maar wacht! Dit werkt niet. In mijn geval mislukte dit omdat ik niet opmerkte dat ik eigenlijk verbinding maakte met een andere vCenter-cluster.

Er gebeurde iets toen ik begon met het importeren van het eerder geëxporteerde VM-apparaat. Een zee van rode foutmeldingen.

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.

Geen zorgen, ik kon nog steeds verbinding maken met de webinterface van de host en handmatig importeren met behulp van de HTML5-interface. De wizard begeleidt je door elke stap, geeft het geïmporteerde apparaat een naam, kiest de OVF, datastore, implementatietype (dik of dun geprovisioneerd), en verifieert de configuratie. Daarna selecteer je Voltooien en begint de import.

Terwijl de vorige importpoging goed zou werken met een vCenter-cluster, zou het gewoon niet werken in deze situatie. Dit duurde iets langer dan verwacht maar was rechttoe rechtaan. Je kunt hier meer lezen over het proces.

Uiteindelijk was de import een succes, en mijn collega haalde zijn deadline.

Samenvatting

Tot deze oefening was ik me er niet van bewust dat niet alle PowerCLI-cmdlets beschikbaar waren in alle situaties. Echter, we hebben allebei een nieuwe vaardigheid geleerd en, terwijl we enige onvoorziene tegenslag ondervonden, hebben we toch de taak volbracht.

Vaak haasten we ons door IT-projecten op zoek naar de ‘snelle’ oplossing. Let op je snelheid, neem nog een minuut of twee om vragen te stellen, stap terug en begrijp het probleem dat je probeert op te lossen. Je zou kunnen ontdekken dat je iets nieuws leert.

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