我将我的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?
答案 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文件。