Cómo exportar una máquina virtual a formato OVF (Open Virtualization Format) en un entorno de virtualización con VMware ESXi 6.7 o superior mediante la línea de comandos. También mostramos cómo exportar a OVF desde el cliente web HTML5 de VMware, que exporta una máquina virtual a ficheros .mf, .vmdk, .ovf y .nvram. Mostramos las ventajas y desventajas de cada método de exportación.

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Para exportar una máquina virtual a OVF podremos hacerlo, sin instalar software adicional, desde el cliente web HTML5 de VMware, tanto si disponemos de un clúster vCenter como si se trata de un servidor independiente ESXi. Para ello accederemos a la consola web, desde un navegador web, en nuestro caso usaremos Mozilla Firefox, a VMware vSphere Client. Para este proceso la máquina virtual debe estar apagada, por lo tanto previamente apagaremos la máquina de forma controlada. Una vez apagada, selecionaremos la máquina virtual [1] y en el menú de «ACCIONES» [2] pulsaremos en «Plantilla» [3] y en «Exportar plantilla de OVF» [4]:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

El asistente nos dará la opción de indicar un nombre para la máquina exportada a OVF, el formato no podremos cambiarlo (Carpeta de archivos OVF), una anotación y si marcamos «Habilitar opciones avanzadas» podremos marcar para que incluya el UUID de la BIOS en la máquina exportada, las direcciones MAC de los adaptadore sde red e información adicional. Pulsaremos «Aceptar» para iniciar el proceso de exportación:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Una de las desventajas de usar el cliente web para la exportación a OVF es que nos irá indicando que se van a descargar los ficheros, uno a uno, y tendremos que confirmar la descarga. Nos solicitará la descarga para el fichero .vmdk:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Para el .nvram:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Para el .ovf:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

El .vmdk anterior será el que más tarde y, otro de los inconvenientes de hacer la exportación desde el cliente web, es que tendremos que esperar a que acabe la descarga de este fichero para confirmar el siguiente, de lo contrario la sesión expirará y no se descargarán todos los ficheros de la máquina virtual.

Nos irá mostrando el progreso en el cliente web:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Las descargas irán quedando en la cola de descargas del navegador, hasta completarse:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Cuando acabe la del .vmdk, que suele ser la más pesada, dado que es el disco duro de la máquina virtual, nos solicitará la última descarga, del fichero .mf:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

En el caso del navegador Mozilla Firefox, si no queremos que para la próxima vuelva a pedir confirmación para cada fichero, marcaremos la opción «Hacer esto automáticamente para estos archivos a partir de ahora».

NOTA IMPORTANTE: en algunos navegadores web puede que haya que habilitar el uso de ventanas emergentes para el sitio web del vCenter o del ESXi al que nos hayamos conectado, de lo contrario bloqueará las ventanas de solicitud de descarga y no se realizarán:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Es otro de los inconvenientes de usar el cliente web HTML5 (o incluso el obsoleto Flex basado en Flash Player), que dependeremos el del navegador web usado y de su política de seguridad.

En el caso del navegador Google Chrome, la descarga de los cuatro ficheros .nvram, .vmdk, .ovf y .mf se realiza directamente sin solicitar confirmación por cada uno de ellos:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Lo que sí hemos observado, en ambos navegadores, es que no podemos elegir dónde descargar los ficheros, lo hará automáticamente en la ubicación de las descargas que tengamos configurada en el navegador. Por lo tanto, hemos de proceder con precaución si la máquina a descargar ocupa mucho espacio. Nos aseguraremos antes de realizar la exportación de que disponemos de espacio suficiente en la unidad de destino.

Los ficheros de la máquina virtual exportada quedarán en la carpeta de descargas (download) del usuario:

Método de exportación de máquina virtual a OVF desde el cliente web HTML5

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

Otra opción, quizá más eficiente que la anterior, es realizar la exportación de una máquina virtual a OVF mediante la línea de comandos, usando la herramienta VMware OVF Tool. Una de las ventajas principales es que el proceso se realiza de forma mucho má rápida y sin apenas interacción, incluso es posible realizarlo mediante script. Otra de las ventajas es que no dependeremos del navegador web y podremos elegir, en el propio comando, la ruta de destino de la máquina exportada.

Uno de los pocos inconvenientes de usar OVF Tools es que es un software adicional y, por lo tanto, tendremos que descargarlo e instalarlo previamente.

A continuación explicamos cómo usar MVware OVF Tools para exportar máquinas virtuales a OVF mediante la línea de comandos.

Descarga e instalación de la herramienta VMware OVF Tool

VMware OVF Tool es una herramienta de VMware, por lo que es de un fabricante de confianza. La descargaremos siempre de su web oficial, del enlace que corresponda, actualmente puede descargarse desde:

Para acceder a un sistema de virtualización con clúster vCenter 6.7 con hosts VMware ESXi 6.7, requeriremos, al menos, de la versión 4.4 de la herramienta VMware OVF Tools, una versión inferior puede que no funcione adecuamente.

Una vez descargado el fichero VMware-ovftool-4.4.0-15722219-win.x86_64.msi lo ejecutaremos y seguiremos los pasos del asistente de instalación (también está disponible para Linux).

Esta herramienta puede instalarse en cualquier equipo que tenga acceso al servidor vCenter de VMware o al host ESXi independiente que contenga las máquinas virtuales que queramos exportar.

El asistente de instalación es muy sencillo:

Descarga e instalación de la herramienta VMware OVF Tool

Únicamente tendremos que aceptar los términos de licencia:

Descarga e instalación de la herramienta VMware OVF Tool

Y elegir la ubicación de los ficheros de la herramienta:

Descarga e instalación de la herramienta VMware OVF Tool

Pulsaremos en «Install»:

Descarga e instalación de la herramienta VMware OVF Tool

Y en unos pocos segundos la herramienta VMware OVF Tool quedará instalada:

Descarga e instalación de la herramienta VMware OVF Tool

En realidad es un comando con unas librerías, por lo que no creará accesos directos en el sistema:

Descarga e instalación de la herramienta VMware OVF Tool

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

Una vez instalada la herramienta, abriremos una ventana de línea de comandos (MS-DOS) , para ello, desde el menú inicio de Windows, escribiremos «Símbolo del sistema» (cmd.exe):

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

Accederemos a la carpeta donde se encuentra la herramienta ovftool.exe con el comando:

cd C:\Program Files\VMware\VMware OVF Tool

Ejecutaremos el siguiente comando para obtener información de una máquina virtual y comprobar que la conexión funciona correctamente:

ovftool.exe –noSSLVerify vi://192.168.1.15/PROYECTOA/vm/MYSQL8

Donde:

  • 192.168.1.15: IP o nombre de red del clúster vCenter o del servidor ESXi al que queramos conectarnos.
  • PROYECTOA: nombre del clúster al que nos conectaremos, en caso de ser un servidor independiente, aquí no indicaremos nada. El nombre del clúster se puede ver en el cliente web:
Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools
  • MYSQL8: nombre de la máquina virtual en el sistema de virtualización vCenter o ESXi.

En caso de no indicar destino, con el comando anterior, devolverá información sobre la máquina virtual «MYSQL8»:

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

Con esto sabremos que se realiza la conexión con el vCenter o el servidor ESXi correctamente y que la máquina virtual se ha encontrado. Para exportarla a OVF, previamente la apagaremos y una vez apagada ejecutaremos el comando:

ovftool.exe –noSSLVerify vi://192.168.1.15/PROYECTOA/vm/MYSQL8 D:\OVF\

El comando es idéntico al anterior, añadiendo la unidad y carpeta de destino de la exportación de la máquina virtual, en nuestro caso en la unidad D, carpeta OVF. Dentro de esta carpeta, la herramienta creará una subcarpeta con el nombre de la máquina virtual, donde guardará los ficheros de la exportación. Nos solicitará usuario y contraseña e iniciará el proceso de exportación a OVF de la máquina virtual:

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

El progreso también puede consultarse desde el cliente web vSphere Web Client:

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

Una vez concluido, habrá generado los mismos ficheros que desde el entorno web, un .mf, un .vmdk (o tantos vmdk como discos duros virtuales tenga la máquina virtual), un .nvram y un .ovf:

Exportar máquina virtual a OVF desde la línea de comandos con VMware OVF Tools

Exportar máquina virtual a OVF por comando de forma automática, sin interactuación

A continuación mostramos el comando con la herramienta VMware OVF Tool SIN que nos solicite usuario y contraseña, para que el proceso sea totalmente automático.

Para exportar una máquina virtual de forma automática, ejecutando el comando sin que nos solicite usuario y contraseña, usaremos el siguiente formato:

ovftool.exe –noSSLVerify vi://»usuario»:»contraseña»@IP_SERVIDOR_ESX_VCENTER/NOMBRE_CLUSTER/vm/NOMBRE_MAQUINA_VIRTUAL RUTA_DESTINO_COPIA

Como vemos en el formato del comando, le pasaremos el usuario y la contraseña de conexión separados con dos puntos (:) y le pasaremos la IP (o el nombre de red) del servidor ESXi (o del clúster vCenter) separada de lo anterior con una arroba (@). El resto del comando será similar (nombre del clúster si conectamos con un vCenter), nombre de la máquina virtual a exportar y ruta de destino de los ficheros de exportación.

Recomendamos introducir el usuario y la contraseña entrecomillados, por ejemplo:

ovftool.exe –noSSLVerify vi://»administrador@vsphere.local»:»mi_contraseña»@192.168.1.15/PROYECTOA/vm/MYSQL8 D:\OVF

Exportar máquina virtual a OVF por comando de forma automática, sin interactuación

Como vemos en el ejemplo del comando anterior, el usuario es «administrador@vsphere.local», lleva una arroba que separa el usuario del dominio de VMware vCenter, si no introducimos las comillas dobles, el comando usará la arroba como separador para el nombre del equipo ESXi o vCenter (o la IP) y dará error. Por ello recomendamos entrecomillar tanto el usuario como la contraseña.

El proceso de exportación en este caso se realizará de forma automática, sin la intervención del usuario. Por ello, este proceso podría programarse, teniendo en cuenta que la máquina virtual tiene que estar apagada. Si no está apagada, el comando anterior mostrará el error:

Exportar máquina virtual a OVF por comando de forma automática, sin interactuación

Con el texto:

Error: Got fault from server: La operación intentada no puede realizarse en el estado actual (Encendida).
Error: Fault cause: vim.fault.InvalidState
Completed with errors

Truco para obtener la URL de conexión completa y un listado de las máquinas virtuales existentes con VMware OVF Tool

En el caso de que no sepamos la URL completa de conexión al sistema de virtualización VMware vCenter, podemos usar el siguiente truco con la herramienta VMware OVF Tool. Si escribimos el comando de conexión siguiente:

ovftool.exe –noSSLVerify vi://»administrador@vsphere.local»:»mi_contraseña»@192.168.1.15

Al introducir el comando sin especificar el nombre del clúster vCenter ni el destino, nos sugerirá la continuación del nombre:

Truco para obtener la URL de conexión completa y un listado de las máquinas virtuales existentes con VMware OVF Tool

Nos indicará:

Error: Found wrong kind of object (Folder). Possible completions are:
PROYECTOA/

Por lo tanto, a la URL de conexión, agregaremos, en nuestro caso, «PROYECTOA»:

ovftool.exe –noSSLVerify vi://»administrador@vsphere.local»:»mi_contraseña»@192.168.1.15/PROYECTOA

Si ejecutamos ahora el comando agregando el nombre del clúster obtenido, nos devolverá:

Truco para obtener la URL de conexión completa y un listado de las máquinas virtuales existentes con VMware OVF Tool

Error: Found wrong kind of object (Folder). Possible completions are:
vm/
host/

Continuamos montando la URL, ahora agregaremos a lo anterior «vm»:

ovftool.exe –noSSLVerify vi://»administrador@vsphere.local»:»mi_contraseña»@192.168.1.15/PROYECTOA/vm

Y si todo es correcto, nos devolverá un listado con todas las máquinas virtuales:

Truco para obtener la URL de conexión completa y un listado de las máquinas virtuales existentes con VMware OVF Tool

Ahora que conocemos las máquinas virtuales y la URL completa, podremos hacer una exportación, por ejemplo de la máquina «pcubuntu20», con el comando:

ovftool.exe –noSSLVerify vi://»administrador@vsphere.local»:»mi_contraseña»@192.168.1.15/PROYECTOA/vm/pcubuntu20 D:\OVF

Conexión con servidor ESXi independiente mediante OVF Tools para enviar

La conexión con un servidor ESXi independiente, que no pertenece a un clúster vCenter, es similar a la anterior, únicamente cambia la URL, que no necesitaremos introducir el nombre del clúster:

ovftool.exe –noSSLVerify vi://»usuario»:»contraseña»@192.168.1.3

En el caso anterior, el servidor ESXi tiene la IP 192.168.1.3, con el comando anterior realizaremos la conexión directa con el servidor, nos devolverá las máquinas virtuales que contiene:

Conexión con servidor ESXi independiente mediante OVF Tools para enviar

Exportar máquina virtual a un único fichero OVA con VMware OVF Tool

De la misma forma que hemos realizado la exportación de una máquina virtual a formato OVF, donde la herramienta genera, al menos, cuatro ficheros por máquina: el .mv, el .ovf, el/los .vmdk y el .nvram., podemos exportar a un único fichero por máquina virtual, con formato OVA. En realidad se trata del formato OVF comprimido en un fichero con extensión OVA.

Para realizar esta exportación a OVA, únicamente tenemos que agregar al final del comando, además de la unidad y carpeta de destino, el nombre del fichero .ova en el que se exportarán los ficheros de la máquina virtual, por ejemplo, para un servidor ESXi independiente:

ovftool.exe –noSSLVerify vi://»administrador@vsphere.local»:»mi_contraseña»@192.168.1.15/PROYECTOA/vm/pcubuntu20 D:\OVF\pcubuntu20.ova

Para un clúster VMware vCenter:

ovftool.exe –noSSLVerify vi://192.168.1.15/PROYECTOA/vm/MYSQL8 D:\OVF\MYSQL8.ova