Vagrant 厨师/流浪汉-如何将omnibus安装程序指向已下载的文件?

Vagrant 厨师/流浪汉-如何将omnibus安装程序指向已下载的文件?,vagrant,chef-infra,Vagrant,Chef Infra,每次我流浪者销毁然后流浪者升级流浪者文件处理都会进行,并找到上次做的老厨师 config.omnibus.chef_version = :latest 如何避免每次下载34MB?有时我确实想从头开始,而不是使用流浪规定 我看着它把厨师从哪里弄来,自己下载到 /Users/jluc/kds2/chef/vagrant/chef_11.14.6-1_amd64.deb 通过评论chef_版本的指导,我有点希望使用install_url,但它似乎对我的文件不满意 #config.omnibus.c

每次我流浪者销毁然后流浪者升级流浪者文件处理都会进行,并找到上次做的老厨师

config.omnibus.chef_version = :latest
如何避免每次下载34MB?有时我确实想从头开始,而不是使用流浪规定

我看着它把厨师从哪里弄来,自己下载到

/Users/jluc/kds2/chef/vagrant/chef_11.14.6-1_amd64.deb
通过评论chef_版本的指导,我有点希望使用install_url,但它似乎对我的文件不满意

#config.omnibus.chef_version = :latest
config.omnibus.install_url = '/Users/jluc/kds2/chef/vagrant/chef_11.14.6-1_amd64.deb'
跳过安装url并将chef_版本指向我下载的文件也没有帮助

文档()说安装url应该是一个安装脚本。如何使用普通安装脚本,但使用下载的文件

@彼得

太好了。听起来好像有用,但很难做到。我在一个安装脚本中有这一点,我在vagrant文件中引用了它,它是从vagrant ssh运行的

#!/usr/bin/env bash
dpkg --install /vagrant/chef_11.14.6-1_amd64.deb
但不是来自流浪汉档案:

config.omnibus.install_url = '/vagrant/utilities/chefinstall.sh'

vagrant omnibus插件允许您提供任何脚本来安装chef。因此,如果将chef安装放在Vagrant文件所在的文件夹中,则可以指向如下所示的安装脚本:

#!/usr/bin/env bash
dpkg --install /vagrant/chef_11.14.6-1_amd64.deb
把它和你的文件放在同一个文件夹里。然后在您的文件中:

config.omnibus.chef_version = '11.14.6'
config.omnibus.install_url = './chefinstall.sh'
这应该行得通。它足够聪明,可以检查安装在盒子上的Chef的版本,并且只在缺少的情况下运行脚本

您还可以使用vagrant cachier插件,这样它就不必每次下载,最新版本的综合插件会挂接到缓存中:

config.omnibus.cache_packages = true

因此,如果您主要关心的是必须重复下载,请查看Peter关于添加chef_版本的建议,它可以正常工作。

这是正确的答案,我只是留下这篇文章,因为它提供了更多关于目录结构的上下文,这是我一直在努力解决的问题

config.omnibus.chef_version = '11.14.6'
config.omnibus.install_url = install_url
详细信息:

(注意:不要看流浪汉cachier,因为我正试图限制我对非核心(Opscode)烹饪书/插件的依赖性。我花了一周的时间在OSX小牛上稳定下来)

安装脚本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
这是我放在Vagrant文件中的内容,在我按照Peter的建议添加chef_版本之前没有成功

#relative (to Vagrantfile) on host 
install_url = './utilities/chefinstall.sh'

puts "jlp:install_url:#{install_url}:"
这是Pete发现的使其工作的方法,添加了chef_版本:

config.omnibus.chef_version = '11.14.6'
config.omnibus.install_url = install_url
在chef_版本之前,我发现这个黑客也在工作

config.vm.provision :shell, :inline => "sudo  /vagrant/utilities/chefinstall.sh"

我现在正在打电话,但我会做一个简要的例子,当我下一次使用我的机器时,作为编辑,我的意思可能是,你在你的“流浪者”文件中的订单意味着在安装综合软件包之前,厨师的供应已经发生了。你能把你所有的流浪汉档案都写在一个要点上吗?如果你愿意的话,我看看能不能让它工作起来安装url在您的主机或远程url上是相对的。如果您将上面的内容更改为我在回答中更改的位,应该可以工作!:)