Skip to Main Content

Infrastructure Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ova2vm - Import and Setup an OVA Guest VM Format Template into KVM & VirtualBox

Ruggero Citton-OracleMay 8 2020 — edited May 11 2020

Selection_242.png

Introduction

The goal of this document is describe 'ova2vm' tool as solution to deploy an OVA Guest VM Format Template on Oracle Linux KVM (OL-KVM) or on Oracle VirtualBox

OVA2VM is not only importing an OVA template in the target provider (KVM or Virtualbox) but leveraging on cloud-init it will make the guest VM setup (user, password, sshkey, network configuration,...) automatically for you.

Assumptions

  • You must have a KVM or Virtualbox host running on OracleLinux (ODA - Oracle Database Appliance running KVM can be used too)
  • If you are going to leverage on auto-setup with cloud-init, you must have an Oracle OVA template cloud-init compliant

Details

OVA2VM is offering two 'verbs':

  • import - to import the OVM template
  • make - to make the cloud-init configuration

Import the OVM template

Usage:

ova2vm import --ova <ova template file>

           {--provider kvm

              --repo          \<KVM repository path>

              \[--vmname       \<guest vm name>\]

              \[--bridge       \<bridge name> \[--macvtap\]\]

              \[--cpu          \<virtual CPU>\]

              \[--diskbus      \<disk bus type ide|sata|scsi|virtio>\]

              \[--typedisk     \<disk type qcow2|raw>\]

              \[--memory       \<memory MB>\]

              \[--netmodel     \<network card model e1000|rtl8139|virtio>\]

              \[--video        \<video model cirrus|qxl|vga|virtio>\]

              \[--cloud\_config \<cloud-init iso file path>\]

              \[--force\]

           }

           |

           {--provider virtualbox

              \[--vmname       \<guest vm name>\]

              \[--cpu          \<virtual CPU>\]

              \[--memory       \<memory MB>\]

              \[--nettype      \<network type: nat|bridge|hostonly> --netname \<none|\<devicename>\]

              \[--cloud\_config \<cloud-init iso file path>\]

              \[--force\]

           }

where

ova2vm 'import' OPTIONS

--ova OVA file to convert

--vmname Guest VM name

--cpu Virtual CPU (Default from source OVA template)

--memory Memory in Mb (Default from source OVA template)

--cloud_config Attach cloud-init iso

--help Show this help message and exit

--version Show program's version number and exit

ova2vm 'import' OPTIONS for KVM provider

--bridge Use bridged network instead of default network

--macvtap It will setup a MACVTAB bridge

--diskbus Specify which bus to use for disk (Default: ide)

--netmodel Specify which network card model to use for network cards (Default: virtio)

--repo KVM repository path

--typedisk Specify which bus to use for disk (Default: qcow2)

--video Specify the video type (Default: virtio)

--force It will import the domain with random name if present

ova2vm 'import' OPTIONS for Virtualbox provider

--nettype VirtualBox network type nat|bridge|hostonly

--netname Host network device name

KVM host provider

Required parameters are the following:

  • Provider name, in this case 'kvm'
  • OVA file to convert
  • KVM Guests repository path (kvm pool)

Storage Format

OVA2VM is performing automatically a conversion from "vmdk" disks (OVA) to "qcow2" (default) or "raw" (base on "--typedisk" command option)

Disk Bus

OVA2VM is permitting different disk bus such

  • ide (default)
  • sata
  • scsi
  • virtio

Oracle Linux OVA templates (from edelivery.oracle.com) are supporting "IDE" disk bus

Network Type

The default network type is NAT using KVM default network, it can be a bridged and in such case you need to provide the bridge NIC name

CPU & Memory

ova2vm reading the OVA template is getting information about vCPU and memory setup automatically. If you want overwrite such setting you need to use related command options "–cpu" and or "–memory"

VMName

If the VMname is not provided, it will be the template name. If the VM is already present and '--force' option is in use, the vmname will be: existing_vmname-<random 5 chars>

Automatic Setup

If after the import you need the guest up&running and configured with a specific user and network setup, you need to specify the cloud_init configuration file '--cloud_config' command option

VirtualBox host provider

Required parameters are the following:

  • Provider name, in this case 'virtualbox'

Network Type

The default network type is NAT. It can be changed to bridge or hostonly providing the virtualbox host network devicename

CPU & Memory

ova2vm reading the OVA template is getting information about vCPU and memory setup automatically. If you want overwrite such setting you need to use related command options "–cpu" and or "–memory"

VMName

If the VMname is not provided, it will be the template name. If the VM is already present and '--force' option is in use, the vmname will be: existing_vmname-<random 5 chars>

Automatic Setup

If after the import you need the guest up&running and configured with a specific user and network setup, you need to specify the cloud_init configuration file '--cloud_config' command option

Make the cloud-init configuration file

Usage:

ova2vm make --cloud_config <cloud-init iso file path>

         --vm-hostname     \<guest vm hostname>

         --vm-domain       \<guest vm domain>

         --vm-timezone     \<guest vm timezone>

         --vm-username     \<guest vm user name>

         --vm-userpassword \<guest vm user password>

         --vm-sshpublickey \<guest vm user ssh public key>

         --vm-publicip     \<guest vm public IP>

         --vm-netmask      \<guest vm netmaks>

         --vm-gateway      \<guest vm gateway>

        \[--vm-netdevice    \<guest vm netdevice>\]

         --vm-dnsserver    \<guest vm DNS server>

         --vm-searchdomain \<guest vm DNS search domain>

        \[--vm-customscript \<guest vm custom script to be executed>\]

where

ova2vm 'make' OPTIONS

--vm-hostname Guest VM hostname

--vm-domain Guest VM domain

--vm-timezone Guest VM timezone

--vm-username Guest VM user name

--vm-userpassword Guest VM user password

--vm-sshpublickey Guest VM user ssh authorized key

--vm-publicip Guest VM public IP

--vm-netmask Guest VM netmaks

--vm-gateway Guest VM gateway

--vm-netdevice Guest VM netdevice (Default: eth0)

--vm-dnsserver Guest VM DNS server

--vm-searchdomain Guest VM DNS search domain

--vm-customscript Guest VM custom script to be executed

Usage Example

1. Import an OVA template into KVM storage pool and on VirtualBox

Selection_238.png

and the imported guest VM will be visible from the Virtual Machine Manager:

Selection_236.png

The same command is executed but using VirtualBox as provider:

Selection_246.png

At this time the Guest VM is up&running under VirtualBox

Selection_247.png

2. Import an OVA template and setup the Guest VM automatically

In this example the "cloud_config" parameter is in use :

Selection_239.png

After the import he new Guest VM will be configured with a specific user, hostname and network setup

Selection_240.png

3.Make the configuration file

IN this example, we are going to make the cloud_config file to setup the Guest VM later after the "import" command.

Selection_241.png

How to get OL7 OVA Template cloud-init ready

The new Oracle Linux 7 Template for Oracle Linux KVM and Oracle Linux Virtualization Manager supplies powerful automation. It is built on cloud-init, the same technology used today on Oracle Cloud Infrastructure and includes improvements and regression fixes.

The template has been built with the following components/options:

  • Oracle Linux 7 Update 8 x86_64 with the Unbreakable Enterprise Kernel 5 Update 3 - kernel-uek-4.14.35-1902.301.1.el7uek.x86_64
  • Red Hat Compatible Kernel - 3.10.0-1127.el7.x86_64
  • 8GB of RAM
  • 15GB of OS virtual disk

**Downloading Oracle Linux 7 Template for Oracle Linux KVM
**

  • Oracle Linux 7 Template for Oracle Linux KVM is available on Oracle Software Delivery Cloud. Search for "Oracle Linux KVM" and select "Oracle Linux KVM Templates for Oracle Linux"
  • Click on the "Add to Cart" button and then click on "Checkout" in the right upper corner. On the following window, select "Linux-x86_64" and click on the "Continue" button:
  • Accept the "Oracle Standard Terms and Restrictions" to continue and, on the following window, click on "V988166-01.zip" to download the Oracle Linux 7 Template for Oracle Linux KVM and on "V988167-01.zip" to download the README with instructions

How to get OVA2VM

You can get the tool from the MOS article:

Import an OVA Guest VM format template into KVM (DocID: 2284806.1)

Comments

Post Details

Added on May 8 2020
0 comments
2,129 views