项目作者: stephen-fox

项目描述 :
A Go library for creating OVA (Open Virtual Appliance) files.
高级语言: Go
项目地址: git://github.com/stephen-fox/ovaify.git
创建时间: 2018-12-01T07:01:46Z
项目社区:https://github.com/stephen-fox/ovaify

开源协议:MIT License

下载


ovaify

What is it?

A Go library for creating OVA (Open Virtual Appliance) files.

Use cases

This library was developed to simplify the virtual machine deployment supply
chain. It enables the creation of OVA (Open Virtual Appliance) files from
an existing OVF (Open Virtualization Format) file and its associated artifacts
(such as a virtual machine disk image).

An OVF only provides the configuration for a virtual machine appliance - it
does not provide the appliance’s disk, or other files. A OVA on the other hand
provides all of these in the form of a single compressed file. Using OVAs makes
deploying new appliances easier, and more maintainable.

While open source tools like packer and
VirtualBox can create these files, they cannot
easily create OVA files from existing OVFs. This is usually worked around using
VMWare’s ovftool. Because
ovftool is closed source, incorporating it into a VM development toolchain can
be a logistical headache. This library allows developers to incorporate
ovftool’s functionality into their toolchain without such headaches.

API

The library’s API is very small. The most notable function is the
CreateOvaFile function. This function creats an OVA using the provided
OvaConfig. Here is an example application that uses this function:

  1. package main
  2. import (
  3. "log"
  4. "github.com/stephen-fox/ovaify"
  5. )
  6. func main() {
  7. config := ovaify.OvaConfig{
  8. OutputFilePath: "/my-awesome.ova",
  9. OvfFilePath: "/my-vm.ovf",
  10. FilePathsToInclude: []string{
  11. "/my-vm-disk-image.vmdk",
  12. },
  13. }
  14. err := ovaify.CreateOvaFile(config)
  15. if err != nil {
  16. log.Fatal("Failed to create OVA - " + err.Error())
  17. }
  18. }