Ste*_*ett 70 rubygems chef-infra vagrant
由于版本0.10.10中的错误,当前Chef配方未运行.如何将Vagrant使用的Chef版本升级到0.10.12?
我不想只为VM的当前实例更新它 - 我一直在破坏和重建它们.我需要在Vagrant基本框中更改某些内容,还是在我的(物理)系统安装中更改某些内容?
mir*_*fer 104
使用Vagrant插件vagrant-omnibus对我很有用:
vagrant plugin install vagrant-omnibus
Run Code Online (Sandbox Code Playgroud)
然后,您可以在进行配置之前在Vagrantfile中简单地配置您的厨师版本:
config.omnibus.chef_version = :latest
Run Code Online (Sandbox Code Playgroud)
您还可以指定特定版本:
config.omnibus.chef_version = '11.6.0'
Run Code Online (Sandbox Code Playgroud)
Bry*_*sen 40
添加行
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"
Run Code Online (Sandbox Code Playgroud)
阻止前的Vagrantfile config.vm.provision :chef_solo.
关于hauraki对http://dougireton.com/blog/2012/12/23/automatically-upgrading-chef-client-on-vagrant-up/的评论的道具
编辑包括贾森梅菲尔德的评论.确保并给他一个upvote.我加入--no-upgrade了速度并匹配--conservative第二行.你可以改为做杰森所做的事,并删除--no-upgrade和--conservative.
编辑以包括匿名用户建议的编辑228653
jti*_*man 31
重建基本框.首先,在没有配置和SSH的情况下启动它.
vagrant up --no-provision
vagrant ssh
Run Code Online (Sandbox Code Playgroud)
然后,执行更新该框所需的命令.这可以包括更新Chef和Ruby.(可选)更新操作系统等的软件包.您应该清除所有不需要的软件包,例如下载的软件包文件或缓存.
例如,我在Vagrant框中使用Opscode Omnibus Full Stack Installer(最初使用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
Run Code Online (Sandbox Code Playgroud)
不要忘记将磁盘"归零"以减小尺寸.
# 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
Run Code Online (Sandbox Code Playgroud)
然后,将盒子打包并将其添加到您的Vagrant环境中以供使用.
vagrant package
vagrant box add mynewlucid32 package.box
Run Code Online (Sandbox Code Playgroud)
如果要使用相同的方框名称,则需要先删除现有方框(〜/ .vagrant.d/boxes/BOXNAME).
Sam*_*Sam 12
使用Chef进行配置时,您可以指定许多选项.其中之一是version,它允许您指定所需的Chef版本.
例如,请参阅我的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
Run Code Online (Sandbox Code Playgroud)
小智 11
我无法对答案发表评论,但我想在上面给Bryan Larsen的答案添加一条说明.为了使他的配置命令工作,我需要在它之前添加一行,以便能够在安装新的Chef版本期间构建gem原生扩展.因此,它成了:
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'
Run Code Online (Sandbox Code Playgroud)
这是在Ubuntu 13.04,如果对任何人都很重要.
| 归档时间: |
|
| 查看次数: |
14698 次 |
| 最近记录: |