【问题标题】:Install ruby gem (compass) with chef solo用主厨独奏安装 ruby​​ gem(指南针)
【发布时间】:2016-01-14 06:08:43
【问题描述】:

是否有一种简单的方法可以使用没有自己的食谱的 chef-solo 安装 ruby​​ gem?

我特别想安装。似乎没有它的食谱,如果可能的话,我想避免自己写。

例如,要安装 npm 包,我可以将其添加到我的 solo.json 配置中:

"nodejs": {
    "npm_packages": [
        {
          "name": "grunt-cli"
        },
        {
          "name": "bower"
        }
    ]
},

(使用 nodejs 食谱https://supermarket.chef.io/cookbooks/nodejs

我可以为红宝石做类似的事情吗?

【问题讨论】:

  • 这里的正确答案是您需要编写自己的食谱。在不写食谱的情况下尝试使用 Chef 就像双手被绑在背后,双腿被砍掉一样。

标签: compass rubygems chef-infra compass chef-solo berkshelf


【解决方案1】:

我认为您可以为此使用gem_package resource

gem_package 'compass' do
  gem_binary '/usr/bin/gem'
  action :install
end

如果您只想使用节点属性安装包,也许the rvm cookbook 可以帮助您,具体取决于您的用例。例如:

node['rvm']['global_gems'] = [
  { 'name'    => 'compass' }
]

【讨论】:

  • 强制“不推荐在服务器上使用 rvm”:-)
【解决方案2】:

Chef 同时提供gem_packagechef_gem 资源。用@sethvargo 的话来自here

chef_gem 和 gem_package 资源都用于安装 Ruby 宝石。对于安装了 chef-client 的任何机器,有 Ruby 的两个实例。一种是标准的、系统范围的实例 Ruby 和另一个是专用实例,仅适用于 厨师客户。使用 chef_gem 资源将 gems 安装到 专用于厨师客户的 Ruby 实例。使用 gem_package 资源来安装所有其他 gem(即安装 gems 系统范围)。

【讨论】:

    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2014-02-14
    • 2014-11-30
    相关资源
    最近更新 更多