电流厨师配方并不是因为在0.10.10版中的错误的运行。 如何升级厨师是流浪使用的版本,以0.10.12?
我不想只是更新了虚拟机的当前实例 - 我一直在破坏和重建的。 我是否需要更改流浪底盒的东西,或者东西在我的(身体)系统的安装?
电流厨师配方并不是因为在0.10.10版中的错误的运行。 如何升级厨师是流浪使用的版本,以0.10.12?
我不想只是更新了虚拟机的当前实例 - 我一直在破坏和重建的。 我是否需要更改流浪底盒的东西,或者东西在我的(身体)系统的安装?
使用插件流浪流浪者,综合性工作对我来说很大:
vagrant plugin install vagrant-omnibus
然后,您可以简单地做供应之前配置在Vagrantfile你的厨师版本:
config.omnibus.chef_version = :latest
您还可以指定一个特定版本:
config.omnibus.chef_version = '11.6.0'
添加行
config.vm.provision :shell, :inline => 'apt-get install build-essential ruby1.9.1-dev --no-upgrade --yes'
config.vm.provision :shell, :inline => "gem install chef --version 11.4.2 --no-rdoc --no-ri --conservative"
您Vagrantfile之前,请config.vm.provision :chef_solo
块。
道具的豪拉基的评论http://dougireton.com/blog/2012/12/23/automatically-upgrading-chef-client-on-vagrant-up/
编辑,包括杰森梅菲尔德的评论。 确保给他一个给予好评了。 我加了--no-upgrade
加快速度并匹配--conservative
在第二行。 你可以代替做什么贾森做的,同时删除--no-upgrade
和--conservative
。
编辑包括匿名user228653建议编辑
重建基本框。 首先,把它无需配置和SSH到它。
vagrant up --no-provision
vagrant ssh
然后,执行你需要更新框的命令。 这可以包括更新厨师和Ruby。 或者,更新包用于操作系统,等你应该清理不是必需的,如下载文件包或缓存所有的箱子。
例如,我用的是Opscode公司总括全栈安装的厨师在我的流浪箱(原内置VeeWee ),我更新包,太。
sudo dpkg --purge chef chef-full
sudo true && curl -L https://www.opscode.com/chef/install.sh | sudo bash
sudo apt-get update && sudo aptitude safe-upgrade
sudo rm /var/cache/apt/archives/*.deb
不要忘了“零”的磁盘,以减少大小。
# a bunch of commands like gem install chef, apt-get upgrade, whatever
sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm /EMPTY
exit
然后,包装盒并把它添加到您的使用环境流浪汉。
vagrant package
vagrant box add mynewlucid32 package.box
如果你想使用相同的邮箱名称,你需要(〜/ .vagrant.d /盒/ BOXNAME)首先删除现有框。
有许多的选择 ,你可以使用主厨供应时注明。 其中之一是version
,它允许你指定你想要的厨师版本。
例如,请参见chef.version
在从该提取物线Vagrantfile
矿的:
config.vm.provision :chef_solo do |chef|
chef.version = "10.14.2"
chef.cookbooks_path = "cookbooks"
chef.add_recipe("vagrant_main")
end
我无法张贴在答案的意见,但我想,把注释添加到布赖恩·拉森的回答以上。 为了得到他的指挥调配工作,我需要添加一行它能够在打造宝石原生扩展安装的新厨师版本之前。 因此,它成为:
config.vm.provision :shell, inline: 'apt-get install ruby1.9.1-dev'
config.vm.provision :shell, inline: 'gem install chef --version 11.4.4 --no-rdoc --no-ri'
这是在Ubuntu 13.04,在关系到人的情况下。
如果使用的是厨师测试厨房,那么你可以指定大厨版本.kitchen.yml
文件,如下所示:
provisioner:
name: chef_zero
require_chef_omnibus: 12.6.0