


Oftentimes people will say “an OVF” and really mean “an OVA.” Vagrant. You can read about the requirements for a valid OVA package in the OVF specification.

Open Virtual Appliance (OVA)Īn OVA is an OVF file packaged together with all of its supporting files (disk images, etc.). It can contain information about the format of a virtual disk image file as well as a description of the virtual hardware that should be emulated to run the OS or application contained on such a disk image. Most commonly, an OVF file is used to describe a single virtual machine or virtual appliance. It is XML based and has generous allowances for extensibility (with corresponding tradeoffs in actual portability). The OVF Specification provides a means of describing the properties of a virtual system. File Formats for Virtual Machines Open Virtualization Format (OVF) This is not by any means a comprehensive guide or list to the vast world of virtualization technology, but hopefully it can save someone else some time in making sense of this portion of the virtualization ecosystem. I’d like to share a few of the things I learned. We knew we could export some kind of `appliance.box` package compatible with VirtualBox from Vagrant, but how this related to OVF wasn’t clear. Our build process made use of VeeWee, Vagrant, and Chef. We quickly determined that an OVF or “Open Virtualization Format”-based approach had the potential to give us the greatest portability, and I set to work figuring out how to implement it. One of the problems we needed to solve for our customer was how to package and distribute the appliance. You may have heard that GitHub has a product called “GitHub Enterprise” that allows a business to deploy their own copy of the GitHub platform within their network GitHub Enterprise is distributed as virtual appliance. Virtual Appliances may or may not have full-blown operating systems supporting the applications, but the key thing is that they are able to run directly on a hypervisor (VMWare ESX, XenServer, Hyper-V, etc.). They have an server application that they would like to distribute to their customers along with some new devices, and a virtual appliance is a good way to do that in a reliable fashion. I recently worked on a project to create a “virtual appliance” for one of our customers.
