每次我 vagrant destroy 然后 vagrant up 时,Vagrantfile 处理都会退出并获取与上次相同的旧 Chef。
config.omnibus.chef_version = :latest
如何避免每次下载 34MB?有时我确实想从头开始而不是使用 vagrant provision。
我看了看它从哪里获取Chef,自己下载到
/Users/jluc/kds2/chef/vagrant/chef_11.14.6-1_amd64.deb
通过注释掉 chef_version 指令我有点希望使用 install_url,但它似乎对我的文件不满意。
#config.omnibus.chef_version = :latest
config.omnibus.install_url = '/Users/jluc/kds2/chef/vagrant/chef_11.14.6-1_amd64.deb'
跳过 install_url 并将 chef_version 指向我下载的文件也无济于事。
文档 ( https://github.com/schisamo/vagrant-omnibus ) 说 install_url 应该是一个安装脚本。如何使用普通安装脚本,但使用我下载的文件?
@彼得
太棒了。听起来它会起作用,但很难做到。我在 Vagrantfile 中引用的安装脚本中有这个它可以从 vagrant ssh
#!/usr/bin/env bash
dpkg --install /vagrant/chef_11.14.6-1_amd64.deb
但不是来自 Vagrantfile:
config.omnibus.install_url = '/vagrant/utilities/chefinstall.sh'
最佳答案
vagrant-omnibus 插件允许您提供任何脚本来安装 chef。因此,如果您将 chef install 放入 Vagrantfile 所在的文件夹中,您可以指向如下所示的安装脚本:
#!/usr/bin/env bash
dpkg --install /vagrant/chef_11.14.6-1_amd64.deb
将它放在与 Vagrantfile 相同的文件夹中。然后在你的 Vagranfile 中:
config.omnibus.chef_version = '11.14.6'
config.omnibus.install_url = './chefinstall.sh'
那应该行得通。它足够聪明,可以检查盒子上安装的 Chef 版本,只有在缺少时才运行脚本。
您也可以使用 vagrant cachier 插件,这样就不必每次都下载,最新版本的 omnibus 插件会挂接到缓存中:
config.omnibus.cache_packages = true
因此,如果您主要关心的是必须重复下载,请查看 vagrant-cachier
关于vagrant - Chef/Vagrant - 如何将综合安装程序指向已下载的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25771376/