如何配置厨师rbenv和ruby-build cookbook?

时间:2014-05-13 17:39:12

标签: chef rhel rbenv knife knife-solo

虽然使用此运行列表初始部署时不会引发任何错误:

"run_list": [ "recipe[ruby_build]", "recipe[rbenv::system_install]", "recipe[main]" ]

...后续部署会抛出多个rsync错误,如:

rsync: delete_file: unlink(ruby-build/share/ruby-build/1.9.3-p392) failed: Permission denied (13)

似乎/tmp/chef-solo的权限设置为root。

使用刀独奏配置rbenvruby-build食谱的正确方法是什么?

编辑:

这个问题实际上只是关于如何正确配置和使用这两本食谱,例如user_install

3 个答案:

答案 0 :(得分:0)

您需要以root身份运行chef-client

答案 1 :(得分:0)

你应该升级刀独奏。 issue已在v0.3.0中修复。您可能希望阅读upgrade instructions

答案 2 :(得分:0)

我想我使用的是过时的食谱版本。而且我真的不知道运行列表是如何工作的。

要通过各自的cookbook安装rbenv和ruby_build,请参阅以下文件配置...

<强> Cheffile

site 'http://community.opscode.com/api/v1'
cookbook 'rbenv', :git => 'https://github.com/fnichol/chef-rbenv', :ref => 'master' 
cookbook 'ruby_build', :git => 'https://github.com/fnichol/chef-ruby_build', :ref => 'master'

更新Cheffile后确保librarian-chef install

网站-食谱/ my_cookbook /食谱/ default.rb

depends 'ruby_build'
depends 'rbenv'

<强>节点/ dna.json

{
  "rbenv": {
    "rubies":["1.9.3-p484"],
    "global":"1.9.3-p484",
    "gems":{
      "1.9.3-p484":[
        {"name": "bundler"},
        {"name":"rails", "version": "4.0.2"},
        {"name": "rake", "version": "10.1.1"}
      ]
    }
  },
  "run_list":[
    "ruby_build", // required by "rbenv::system"
    "rbenv::system", // installs rubies and gems from dna, takes a while to finish the first time; see configuration options at https://github.com/fnichol/chef-rbenv#attributes
    "my_cookbook::default"
  ]
}

根据cookbook docs的建议,使用node.default["var_name"] = "value_name"在食谱中设置这些配置变量对我来说无效。