I’m currently taking advantage of the generous vExpert offering from Ravello Systems, wherein we get some free time every month. So far it’s an excellent service, though not without some flaws, but hey, they’re brand new!
I may do a more comprehensive writeup on Ravello later on, but if you’re eager for more information now, you do do worse than to check out their presentation at the recent Virtualisation Field Day 5. For now, I want to show you how you can convert virtual appliance images into other formats, using my recent success with vRealize Operations Manager (henceforth referred to as vROps).
Import an OVA
I’m currently neck deep in vROps for a project (that I will tell you about another time) and wanted to spin it up in a lab. You can download an evaluation version as a virtual appliance, an OVA, which is easy enough to import into VMware products like vSphere or Workstation.
But Ravello doesn’t support the OVA format natively, so how do you get it into the system? Well, Ravello does support creating a VM using individual VMDK files (or ISO or QCOW, as well as some other mechanisms). An OVA is just a tar format file that contains a set of VDMKs and some metadata about them (like an OVF file), so we can work around the issue pretty easily.
I did all this on Ubuntu 14.04.2 LTS, but this method should work fine on other platforms.
First of all, extract the files from the OVA using tar or some other tool that understands tar format. The files aren’t in a directory hierarchy, so beware that this command will extract the files into the current directory.
$ tar xvf vRealize-Operations-Manager-Appliance-18.104.22.16877062_OVF10.ova -rw-r--r-- mts/mts 319218 2015-05-30 11:30 vRealize-Operations-Manager-Appliance-22.214.171.12477062_OVF10.ovf -rw-r--r-- mts/mts 454 2015-05-30 11:31 vRealize-Operations-Manager-Appliance-126.96.36.19977062_OVF10.mf -rw-r--r-- mts/mts 1956 2015-05-30 11:31 vRealize-Operations-Manager-Appliance-188.8.131.5277062_OVF10.cert -rw-r--r-- mts/mts 437408256 2015-05-30 11:30 vRealize-Operations-Manager-Appliance-184.108.40.20677062-system.vmdk -rw-r--r-- mts/mts 34249728 2015-05-30 11:30 vRealize-Operations-Manager-Appliance-220.127.116.1177062-data.vmdk -rw-r--r-- mts/mts 1255962112 2015-05-30 11:30 vRealize-Operations-Manager-Appliance-18.104.22.16877062-cloud-components.vmdk
You’ll see there are three VMDK files there. These are the files we want to import into Ravello for our VM.
Fire up the Ravello VM Import Tool and select Create a new VM by uploading existing disk files.
Now select the files one at a time and click the arrow button to move them into the upload set on the right of the screen. Name the VM image you want to create, and then click Upload!
Once the files have uploaded, your VM will be available in your Ravello library.
Configure the VM
Once you’ve uploaded the files, you need to do a few bits of configuration to your VM template.
The OVA form of vROps wants a minimum of 4 vCPUs and 16GB of RAM for a ‘small’ environment of less than 2000 VMs. Given this is a lab, you should be able to manage with a lot less than this, and Ravello limits how much you can have anyhow. I gave the vROps 4 CPUs and 8GB of RAM, which is the maximum size I’m allowed to create in my Ravello instance. I also set the Platform to V2-ESX because vROps will check which hypervisor it runs on, and complain if it’s not VMware. As it turns out, I don’t think this setting actually matters, because vROps still notices that Ravello is Xen and not VMware, but the VM still runs fine. Still, this is known to work.
A note, though: when the VM boots, it waits for a keypress to continue booting after whinging about the hypervisor being the wrong flavour. You’ll need up pull up the console in Ravello and press a key of your choice to get it to start up.
Update: The fine folk at Ravello pointed me to this blog post where they show how you can edit
/etc/init.d/boot.compliance to make the system boot up without waiting for this keypress.
You’ll also want to make sure the disks are correctly configured for booting. I put them in the following order, using the sizes to gauge which image was which. This worked for me, so it should for you, too:
Add an HTTPS service to the VM, so you can connect to the vROps web console once it’s installed and running.
And that’s basically it. Now you have a library vROps image you can use in your Ravello applications.
AutoLab + vROps
I’ve now got this successfully running in Ravello alongside a lab built using the excellent AutoLab 2.6 by Alastair Cooke et al. The whole process took a little while to get going, but it’s mostly the setup costs of doing things for the first time. It’s not quite as flexible or powerful as having my own physical lab, but it’s also a lot cheaper.
This process also validates the approach for testing out a range of virtual images. While it’d be nice if Ravello added support for simple OVA import, this workaround works for me, and now the whole world of virtual appliances is available for testing in a cloud lab.