Ich verwende Vagrant für virtuelle Maschinen und möchte damit beginnen, meine eigenen Basisboxen zu erstellen, um eine Produktionsumgebung zu finden.Wie stelle ich die Version der Vagrant-Box, die mit VMware Fusion erstellt wurde, mithilfe einer `metadata.json`-Datei ein?
Ich habe eine einfache Debian-Basis-Box mit VMware Fusion Pro 8.1.1 erstellt und ich konnte add
die Box, aber ich möchte die Box metadata.json verwenden, um Versionsnummern festzulegen. Ich las in den vagrant doc, dass der einzigen erforderlichen Schlüssel ist die "provider"
, und das funktioniert gut, aber wenn ich vagrant box list
ich v0
work-debian7-11-64 (vmware_fusion, 0)
bekommen kann ich es sehen, wenn ich mit einer aktualisierten metadata.json
Datei wieder entfernen, um zu versuchen.
$ vagrant box remove work-debian7-11-64
Removing box 'work-debian7-11-64' (v0) with provider 'vmware_fusion'...
Wenn ich in der Dokumentation folgen und "version":"0.1.0"
so etwas wie:
{
"name": "hashicorp/precise64",
"description": "This box contains Ubuntu 12.04 LTS 64-bit.",
"versions": [
{
"version": "0.1.0",
"providers": [
{
"name": "virtualbox",
"url": "http://somewhere.com/precise64_010_virtualbox.box",
"checksum_type": "sha1",
"checksum": "foo"
}
]
}
]
}
ich mit einem Fehler am Ende, wenn ich zu add
die Box gehen. Dieser Teil der Ausgabe ist (es geht mit mehr Details über mit from
)
$ vagrant box add work-debian7-11-64 debian-7.11-64.vmware.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'work-debian7-11-64' (v0) for provider:
box: Unpacking necessary files from: file:///Users/dave/Code/code_resources/vagrant_examples/vagrant-bird-box-vmware-debian-nodesktop/debian-7.11-64.vmware.box
/opt/vagrant/embedded/gems/gems/vagrant-1.8.4/lib/vagrant/box_collection.rb:155:in `block (3 levels) in add': undefined method `to_sym' for nil:NilClass (NoMethodError)
Das ist mein metadata.json
Datei:
{
"name": "workalicious/debian7-11-64",
"description": "Debian 7.11.0 64-bit web server.",
"versions": [{
"version": "0.1.0",
"providers": [{
"name": "vmware_fusion"
}]
}]
}
Ich frage mich, ob es etwas, das ich mit dem tun, ist falsch bin Format der metadata.json
? Wenn ich nur den provider
Schlüssel verwende, funktioniert box add
ohne Fehler. Ich weiß, dass es Altas und Packer gibt, aber ich wollte das lokal versuchen.
FYI, die JSON-Datei an 'vagrant box add' zu übergeben kann einen beliebigen Namen haben, den Sie mögen. – tectux