【发布时间】:2013-09-16 18:35:12
【问题描述】:
我正在尝试安装其他厨师食谱将识别为系统 ruby 的全球版本的 ruby。我正在尝试使用chef-rbenv 执行此操作,这似乎在用户级别上工作,但在厨师运行 ohai 时不起作用。我说当厨师运行 ohai 时它不起作用,因为像 passenger_apache2 这样的食谱引用 node['languages']['ruby']['ruby_bin'] 指向“/usr/bin/ruby”。但是,当我以用户身份登录运行 ohai 时,我得到了 rbenv shim 位置。我是否在我的 rbenv 配置中遗漏了一些东西才能看到这种行为?
附加信息:
平台 - 亚马逊 (ami-05355a6c)
运行列表:
配方[ruby_build]
食谱[ohai]
配方[rbenv::system]
配方[构建必备]
配方[apache2]
食谱[passenger_apache2]
配方[passenger_apache2::mod_rails]
--更新
我从来没有让 chef-client ohai 获取我的 rbenv 设置,但这不再是问题,因为我最终覆盖了角色中的节点属性。这仅是由于最近的更改(passenger_apache2 commit -a0a32fda0b56228d6e54163c98f6736e17cad12c)才可能发生的。
注意:omnibus 也可能解决了我的问题。
【问题讨论】:
-
为什么要这样做? Chef 附带了一个嵌入的 ruby 副本,您应该喜欢它,因为它可以提高可靠性。像乘客这样的软件应该支持系统红宝石。也许你的问题应该集中在让像乘客这样的系统使用 rbenv,而不是食谱食谱。
-
我这样做是因为我有需要 ree-1.8.7 的遗留应用程序。让乘客使用 rbenv 就像在配置文件中硬编码路径一样简单。我更喜欢由 ohai 确定路径,就像它目前在乘客食谱中编码一样。 (如果可能的话)
标签: chef-infra rbenv