I have an S3 bucket of existing VMware virtual machine images (OVA format), and I want to make them compatible with Vagrant. However, I am a bit confused about the structure of how Vagrant images are packaged.
It seems like there are two separate metadata.json
files that one needs to consider:
- The
metadata.json
that goes inside of the.box
file - The
metadata.json
that lists all of the.box
files with the different providers
The Vagrant documentation talking about the Box File Format lists a quick example for the metadata.json
. What does make sense is that you need a metadata.json
file to serve as an index for all of the version / provider combinations like the following:
{
"name": "hashicorp/bionic64",
"description": "This box contains Ubuntu 18.04 LTS 64-bit.",
"versions": [
{
"version": "0.1.0",
"providers": [
{
"name": "virtualbox",
"url": "http://example.com/bionic64_010_virtualbox.box",
"checksum_type": "sha1",
"checksum": "foo"
}
]
}
]
}
This would be #2 above. But what about the .box
file itself? What does one need to do to take an OVA (or any disk image really) and make it into a .box
file for use in Vagrant?