Importar y Exportar Archivos OVF: Mover Máquinas Virtuales Entre Anfitriones

En mi trabajo actual, a menudo me preguntan sobre el uso de PowerCLI para realizar varias tareas en un clúster de vCenter. En esta publicación, compartiré cómo aprendí a importar un archivo OVF en VMware.

OVF File

Esta es una historia sobre una solicitud reciente de ayuda de un colega que necesitaba exportar una plantilla de dispositivo de monitoreo personalizado a un nuevo clúster de vCenter que se estaba construyendo. Mi colega estaba bajo restricciones de tiempo y no tenía el acceso necesario a la plantilla.

Si aún no lo has hecho, asegúrate de descargar el módulo PowerCLI mediante Install-Module -Name PowerCLI

Conexión a vCenter

Nunca queriendo perder la oportunidad de usar PowerShell o PowerCLI, me lancé de cabeza para ayudar. Recopilé la información necesaria de mi colega y comencé a conectarme al clúster:

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

Esto solo lleva un momento en completarse. Una vez que te hayas conectado, necesitas saber qué verbos usar. Puedes hacer esto usando el cmdlet Get-Command -Module PowerCLI.

Hay dos cmdlets que destacan:

  • Export-VApp
  • Import-VApp

Ambos de estos cmdlets parecen ser exactamente lo que necesitas. Pero primero, como esta es una experiencia de aprendizaje para mí y quizás para ti, me educaré un poco más sobre el uso adecuado de cada uno.

Exportar MVs a un archivo OVF

El cmdlet Export-VApp exportará la VM apagada como un archivo OVF al directorio actual de tu sesión de forma predeterminada si no especificas una ruta.

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

Pero hay un problema. No puedes exportar una VM en ejecución a un archivo OVF. No te preocupes, esto tiene una solución rápida. Modifica tu código un poco más y asegúrate de apagar primero la VM usando el cmdlet Shutdown-VMGuest.

PS6> Shutdown-VMGuest -VM 'My_VM_Template'

Con la plantilla de la aplicación ahora desconectada, continúa ejecutando el cmdlet Export-VApp que intentaste anteriormente. Este proceso llevará unos minutos y la aplicación no era muy grande desde el principio.

Cuando esté completo, deberías tener una aplicación lista para ser implementada en otro entorno de vCenter. ¿O no?

Importación de archivos OVF

Ahora deberías tener un archivo en tu sistema de archivos local. Puedes importarlo sin problemas. Para hacerlo, necesitarás consultar el datastore para importarlo junto con el host de la VM. Luego, puedes usar ambos objetos para pasarlos al cmdlet Import-Vapp y así 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

¡Pero espera! Esto no funciona. En mi caso, falló porque no noté que en realidad me estaba conectando a otro clúster de vCenter.

Algo sucedió cuando comencé a importar la aplicación VM exportada anteriormente. Un mar de mensajes de error en rojo.

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.

No te preocupes, aún podía conectarme a la interfaz web del host e importar manualmente usando la interfaz HTML5. El asistente te guiará en cada paso, asigna un nombre a la aplicación importada, elige el OVF, datastore, tipo de implementación (provisionado grueso o delgado) y verifica la configuración. Después de eso, selecciona Finalizar y comienza la importación.

Mientras que el intento de importación anterior funcionaría muy bien con un clúster de vCenter, simplemente no iba a funcionar en esta situación. Esto tomó un poco más de tiempo de lo esperado pero fue sencillo. Puedes leer más sobre el proceso aquí.

Al final, la importación fue un éxito y mi colega cumplió con su plazo.

Resumen

Hasta este ejercicio, no era consciente de que no todos los cmdlets de PowerCLI estaban disponibles en todas las situaciones. Sin embargo, ambos aprendimos una nueva habilidad y, aunque experimentamos ciertas adversidades imprevistas, aún logramos cumplir con la tarea en cuestión.

Demasiado a menudo nos apresuramos en proyectos de IT buscando la solución rápida. Vigila tu velocidad, tómate otro minuto o dos para hacer preguntas, retrocede y comprende el problema que estás tratando de resolver. Puede que descubras que aprenderás algo nuevo.

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