每当我 vagrant destroy 然后 vagrant up 时,Vagrantfile处理就会消失并取出它上次使用的同一个老厨师。
config.omnibus.chef_version = :latest
如何避免每次下载34MB?有时我确实想从头开始重新启动,而不是使用 vagrant provision 。
我看了它从哪里取出厨师,自己下载到
/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指向我下载的文件也无济于事。
doc(https://github.com/schisamo/vagrant-omnibus)表示install_url应该是一个安装脚本。如何使用普通安装脚本,但使用我下载的文件?
@Peter
大。听起来它会起作用,但却难以实现。我在安装脚本中有这个,我在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'
答案 0 :(得分:3)
vagrant-omnibus插件允许您提供安装厨师的任何脚本。因此,如果您将chef安装到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
答案 1 :(得分:0)
彼得关于添加chef_version的建议使其工作正常。
这是正确答案,我只是留下了这篇文章,因为它提供了更多关于目录结构的上下文,这是我一直在与Chef docs一起努力的事情。
config.omnibus.chef_version = '11.14.6'
config.omnibus.install_url = install_url
<强>详细信息:强>
(注意:不要看vagrant-cachier,因为我试图限制我对非核心(Opscode)烹饪书/插件的依赖。获得Berkshelf稳定让我在OSX Mavericks上花了一周时间。)
安装脚本chefinstall.sh:
#!/usr/bin/env bash
dpkg --install /vagrant/chef_11.14.6-1_amd64.deb
这是我的设置,目录明确
|-- Vagrantfile
|-- chef_11.14.6-1_amd64.deb
|-- utilities
| |-- chefinstall.sh
从主机,这是权限的样子:
audrey:utilities jluc$ ls -l chefinstall.sh
-rwxr-xr-x 1 jluc staff 68 10 Sep 12:19 chefinstall.sh
来自客人,以防万一:
vagrant@vagrant:~$ ls -l /vagrant/utilities/chefinstall.sh
-rwxr-xr-x 1 vagrant vagrant 68 Sep 10 12:19 /vagrant/utilities/chefinstall.sh
这是我在Vagrantfile中的内容,在我根据彼得的建议添加了chef_version之前没有成功。
#relative (to Vagrantfile) on host
install_url = './utilities/chefinstall.sh'
puts "jlp:install_url:#{install_url}:"
这就是Pete发现的,它使其成功,添加了chef_version:
config.omnibus.chef_version = '11.14.6'
config.omnibus.install_url = install_url
在chef_version之前,我发现这个黑客工作正常。
config.vm.provision :shell, :inline => "sudo /vagrant/utilities/chefinstall.sh"