Pau*_*ill 8 ruby ubuntu chef-infra vagrant
我想用Ruby 1.9.2配置一个新的Ubuntu 10.04盒子.我正在使用Vagrant和Chef Solo为盒子提供我需要的一切(例如Rails,Rake,MongoDB).默认的Ruby版本是1.8.7.
有没有办法安装Ruby 1.9.2作为Vagrant/Chef配置过程的一部分?
我在Chef网站上读到了关于使用我自己的bootstrap模板 - 可能还有刀 - 比如这个,但因为我使用Vagrant我不知道在哪里放这个模板 - 我没有厨师 - repo,.chef目录,甚至是/ etc/chef中安装的任何Chef东西.
Gar*_*thr 11
首先,一点背景.大多数Vagrant基本框都安装了Ruby供Chef和Puppet使用,但是最新的基本框用于/ opt/ruby而不是使用系统包.他们还将/ opt/ruby/bin添加到路径中,但最后.
此VeeWee模板显示了当前如何构建10.04框:https://github.com/jedi4ever/veewee/blob/master/templates/ubuntu-10.04.3-server-i386/postinstall.sh
至于你的问题,它们可能是你试图解决的几个不同的背景,每个都有不同的解决方案.希望其中一个将是您正在寻找的.
使用1.9.2运行Chef配方
您可能想要在1.9.2下测试正在运行的Chef配方,并且您不希望1.8.7在您的盒子附近的任何地方.解决这个问题的最佳方法是创建自己的VeeWee模板并为自己构建一个新的basebox.你可以修改上面链接的那个来编译1.9.2而不是1.8.7并按照https://github.com/jedi4ever/veewee上的说明进行操作
使用Ruby 1.9.2开发
可能更有可能的是你想使用1.9.2破解一些Ruby代码.为此,您只需要安装Ruby并在/ opt/ruby条目之前在路径上包含二进制文件.有几种方法可以做到这一点:
所有这些都可以使用Chef配方进行管理.我可能不会选择编译选项,只留下直接下载和包资源,或者下面的RVM cookbook可能很方便http://community.opscode.com/cookbooks/rvm用于RVM.
在*gem_binary*包装上的资源选项也可能是有用这里取决于你想如何确保宝石获得安装了新的Ruby 1.9.2(而不是选择1.8.7)
目标knife bootstrap是将Chef安装在目标系统上,以便它可以运行Chef Client.Vagrant baseboxs往往已经安装了Chef,所以除非你正在做一些特定的事情,并且想要运行多个版本的Chef,否则我会避开这条路线.像http://vagrantup.com/docs/provisioners/chef_solo.html这样内置的Chef配置器是更好的选择.
| 归档时间: |
|
| 查看次数: |
10397 次 |
| 最近记录: |