即使在重新加载后,Vagrant box也看不到新的box_url

时间:2015-06-10 17:59:38

标签: vagrant vagrantfile

我将我的Vagrantfile的confg.vm.box_url更新为一个新的URL(该框托管在IP已更改的服务器上),并且没有任何流浪汉重新加载将使Vagrant看到新的URL。当我运行vagrant reload --debug时,我看到它尝试从旧URL获取元数据。

相关的调试输出:

==> default: Checking if box 'tute_development' is up to date...
 INFO downloader: Downloader starting download: 
 INFO downloader:   -- Source: http://10.0.1.36/vagrant/tute_development/tute_development.json

这是流浪文件的相关部分:

config.vm.box_url = "http://192.168.1.104/vagrant/tute_development/tute_development.json"

如何让流浪盒看到新的box_url?

2 个答案:

答案 0 :(得分:1)

我建议的另一种方法是删除第一次下载的默认基本Vagrant(在Windows上类似:C:\Users\[Username]\.vagrant.d\boxes\[YourBoxName])。重新加载时,Vagrant会查找它,找不到它,然后使用您更改的URL再次下载。

希望这有帮助。

答案 1 :(得分:0)

不幸的是,这是Vagrant的预期行为。引用此Github问题(https://github.com/mitchellh/vagrant/issues/4235):

  

配置中的框URL仅在框不显示时使用   存在(通过其逻辑名称)在本地框注册表(vagrant box)中   列表)。要强制下载新的框,您必须更新   name,或将URL指向具有更高版本的元数据JSON。

引用的元数据JSON是config.vm.box_url属性指向的JSON文件。在我的情况下,它指向已更改的内部网络IP地址,因此我在~/.vagrant.d/boxes/{boxname}/metadata_url中编辑了metadata_url文件。