我正在尝试创建一些Vagrant
VM,但每当我使用vagrant box add
时,它都说我的框没有metadata.json
文件。这有时也会在metadata.json
文件存在但provider
不需要Vagrant.
行的情况下引起。但是,我尝试的所有框都有此文件包含所需的文本,更正JSON
格式。通常我有文件说:
{
"provider": "virtualbox"
}
我不相信白色空间很重要,你可能有数百个空行和&标签&空间。事实上它没有抛出不同的错误(通常为Could not resolve host
)意味着它正在找到VM。
有趣的是,我的系统有precise32
样本虚拟机,Vagrant
在vagrant up
编辑时没有抱怨。我甚至将metadata.json
文件从那里复制到我的一个VM中并再次使用它,但它仍然没有用。
我不确定它是否相关,但是当我尝试添加--provider
标志时(如vagrant add box /box/path --provider
中所示),它会抛出错误,
c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/plugin/v2/comm
and.rb:51:in `parse_options': missing argument: --provider (OptionParser::Missin
gArgument)
from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.3.5/plugins/comma
nds/box/command/add.rb:29:in `execute'
from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.3.5/plugins/comma
nds/box/command/root.rb:47:in `execute'
from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/c
li.rb:38:in `execute'
from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/e
nvironment.rb:478:in `cli'
from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.3.5/bin/vagrant:9
6:in `<top (required)>'
from c:/HashiCorp/Vagrant/bin/../embedded/gems/bin/vagrant:23:in `load'
from c:/HashiCorp/Vagrant/bin/../embedded/gems/bin/vagrant:23:in `<main>
'
答案 0 :(得分:4)
不确定,如果您仍在寻找答案。以防其他人正在寻找
当你的时候,metadata.json应该是结构的根 创建tar
试试这个tar -czf server-image.box ./*
而不是tar -czf server-image.box server-image-folder