Vagrant 1.x出现有一段时间了,看了一下,增加了VMware和AWS(以custom plugin形式提供)的Provider,看来Vagrant功能越来越强大了。
升级了一下,结果出现了box无法载入的问题,根据这篇文章,手动修改几个文件就可以了。
首先在1.x之前,boxes的目录形式是这样的
$ ls
box-disk1.vmdk box.ovf Vagrantfile
到了1.x之后,变成这样了
$ tree virtualbox/
virtualbox/
├── box-disk1.vmdk
├── box.ovf
├── metadata.json
└── Vagrantfile
对比之下,发现1.x 因为增加了不同的Provider,所以在box目录下面新建了不同的Provider目录,各个Provideer目录才存放真正的templates。
除此之外,还多了个metadata.json文件
$ cat virtualbox/metadata.json |python -mjson.tool
{
"provider": "virtualbox"
}
于是清楚了变化之后,就好办多了。
- 在box下面新建Provider目录,比如Virtualbox就输入如下命令
$ mkdir virtualbox
- copy文件到Provider目录下面
$ cp box* Vagrantfile virtualbox
- 创建metadata.json文件
好了,现在vagrant up就可以正常工作了。官方文档说1.x 与 1.0.x 兼容,但是忘记以前是什么版本了,如果以前版本的box目录没有Provider目录,那么按上述方法应该就能搞定问题了。
Vagrant真是个好东西,留贴纪念一下