虽然使用此运行列表初始部署时不会引发任何错误:
"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。
使用刀独奏配置rbenv和ruby-build食谱的正确方法是什么?
编辑:
这个问题实际上只是关于如何正确配置和使用这两本食谱,例如user_install。
答案 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"
在食谱中设置这些配置变量对我来说无效。