Chef infra 如何与乘客一起使用RVM食谱?

Chef infra 如何与乘客一起使用RVM食谱?,chef-infra,Chef Infra,我正试图与厨师索洛一起为RVM制作一本食谱 我的跑步列表如下所示: "run_list": [ "recipe[apt]", "recipe[build-essential]", "recipe[curl]", "recipe[users]", "recipe[rvm::vagrant]", "recipe[rvm::system]", "recipe[nginx::passenger]", "recipe[nginx::sourc

我正试图与厨师索洛一起为RVM制作一本食谱

我的跑步列表如下所示:

"run_list": [ "recipe[apt]", "recipe[build-essential]", "recipe[curl]", "recipe[users]", "recipe[rvm::vagrant]", "recipe[rvm::system]", "recipe[nginx::passenger]", "recipe[nginx::source]", "recipe[postgresql::server]", "recipe[postgresql::client]" ] “运行列表”:[ “配方[apt]”, “配方[基本构建]”, “配方[卷曲]”, “配方[用户]”, “配方[rvm::流浪者]”, “配方[rvm::系统]”, “配方[nginx::乘客]”, “配方[nginx::source]”, “配方[postgresql::server]”, “配方[postgresql::client]” ] RVM和Nginx的我的属性:

"rvm": { "rubies": ["1.9.3-p0"], "global": ["1.9.3-p0"], "vagrant": { "system_chef_solo" : "/opt/ruby/bin/chef-solo" }, "gems": { "1.9.3-p0": [ {"name": "bundler"}, {"name": "passenger"}, {"name": "rake"} ] } }, "nginx": { "version": "1.2.5", "user": "deploy", "init_style": "init", "modules": [ "http_stub_status_module", "http_ssl_module", "http_gzip_static_module" ], "passenger": { "version": "3.0.18" }, "configure_flags": [ "--add-module=/var/lib/gems/1.9.1/gems/passenger-3.0.18/ext/nginx" ], "gzip_types": [ "text/plain", "text/html", "text/css", "text/xml", "text/javascript", "application/json", "application/x-javascript", "application/xml", "application/xml+rss" ] }, “rvm”:{ “红宝石”:[“1.9.3-p0”], “全球”:[“1.9.3-p0”], “流浪汉”:{“系统厨师厨师独奏”:/opt/ruby/bin/chef solo}, “宝石”:{ “1.9.3-p0”:[ {“name”:“bundler”}, {“姓名”:“乘客”}, {“name”:“rake”} ] } }, “nginx”:{ “版本”:“1.2.5”, “用户”:“部署”, “init_风格”:“init”, “模块”:[ “http_存根_状态_模块”, “http_ssl_模块”, “http_gzip_静态_模块” ], “乘客”:{ “版本”:“3.0.18” }, “配置_标志”:[ “--添加模块=/var/lib/gems/1.9.1/gems/passenger-3.0.18/ext/nginx” ], “gzip_类型”:[ “文本/纯文本”, “文本/html”, “文本/css”, “文本/xml”, “文本/javascript”, “应用程序/json”, “应用程序/x-javascript”, “应用程序/xml”, “应用程序/xml+rss” ] }, 但是,转换中断为:

================================================================================ Error executing action `install` on resource 'gem_package[passenger]' ================================================================================ Gem::InstallError ----------------- passenger requires rake (>= 0.8.1) Resource Declaration: --------------------- # In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/passenger.rb 53: gem_package 'passenger' do 54: action :install 55: version node["nginx"]["passenger"]["version"] 56: gem_binary node["nginx"]["passenger"]["gem_binary"] if node["nginx"]["passenger"]["gem_binary"] 57: end 58: Compiled Resource: ------------------ # Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/passenger.rb:53:in `from_file' gem_package("passenger") do version "3.0.18" package_name "passenger" provider Chef::Provider::Package::Rubygems retry_delay 2 action [:install] retries 0 recipe_name "passenger" cookbook_name :nginx end .... /opt/ruby/lib/ruby/gems/1.8/gems/chef-10.18.2/bin/../lib/chef/application/solo.rb:216:in `run_application' /opt/ruby/lib/ruby/gems/1.8/gems/chef-10.18.2/bin/../lib/chef/application.rb:72:in `run' /opt/ruby/lib/ruby/gems/1.8/gems/chef-10.18.2/bin/chef-solo:25 /opt/ruby/bin/chef-solo:19:in `load' /opt/ruby/bin/chef-solo:19 [2013-02-26T14:22:18+00:00] FATAL: Gem::InstallError: gem_package[passenger] (nginx::passenger line 53) had an error: Gem::InstallError: passenger requires rake (>= 0.8.1) Chef never successfully completed! Any errors should be visible in the output above. Please fix your recipes so that they properly complete. ================================================================================ 在资源“gem_包[passenger]”上执行操作“install”时出错 ================================================================================ Gem::InstallError ----------------- 乘客需要耙子(>=0.8.1) 资源声明: --------------------- #In/tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/passenger.rb 53:gem_套餐“乘客”do 54:操作:安装 55:版本节点[“nginx”][“乘客”][“版本”] 56:gem_二进制节点[“nginx”][“乘客”][“gem_二进制”]if节点[“nginx”][“乘客”][“gem_二进制”] 57:完 58: 汇编资源: ------------------ #声明于/tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/passenger.rb:53:in“from_file” gem_套餐(“乘客”)do 版本“3.0.18” 包裹名称“乘客” 提供者厨师::提供者::包::Rubygems 重试\u延迟2 操作[:安装] 重试0次 “乘客”姓名 食谱名称:nginx 结束 .... /opt/ruby/lib/ruby/gems/1.8/gems/chef-10.18.2/bin/。/lib/chef/application/solo.rb:216:in'run_application' /opt/ruby/lib/ruby/gems/1.8/gems/chef-10.18.2/bin/。/lib/chef/application.rb:72:in'run' /opt/ruby/lib/ruby/gems/1.8/gems/chef-10.18.2/bin/chef-solo:25 /opt/ruby/bin/chef solo:19:in'load' /opt/ruby/bin/chef solo:19 [2013-02-26T14:22:18+00:00]致命:Gem::InstallError:Gem_包[passenger](nginx::passenger line 53)出现错误:Gem::InstallError:passenger需要rake(>=0.8.1) 厨师从未成功完成!任何错误都应在中可见 以上输出。请修改您的食谱,使其正确完成。
可以做什么?

Nginx需要从源代码处编译,而Apache可以使用乘客模块。这意味着,Nginx需要知道RVM gem内乘客分机的来源

覆盖:
gem\u二进制文件

"passenger": { "version": "3.0.18", "gem_binary": "/usr/local/rvm/wrappers/ruby-1.9.3-p0/gem" }, “乘客”:{ “版本”:“3.0.18”, “gem_二进制文件”:“/usr/local/rvm/wrappers/ruby-1.9.3-p0/gem” },
Nginx需要从源代码编译,而Apache可以使用乘客模块。这意味着,Nginx需要知道RVM gem内乘客分机的来源

覆盖:
gem\u二进制文件

"passenger": { "version": "3.0.18", "gem_binary": "/usr/local/rvm/wrappers/ruby-1.9.3-p0/gem" }, “乘客”:{ “版本”:“3.0.18”, “gem_二进制文件”:“/usr/local/rvm/wrappers/ruby-1.9.3-p0/gem” },
应该可以做到这一点。

这里有一个a编写的指南,使用chef与乘客一起安装nginx:

这里有一个a编写的指南,使用chef与乘客一起安装nginx:

如果我使用ruby 2.0,乘客安装会出现错误:
/usr/lib/ruby/1.9.1/rubygems/dependency.rb:247:in to_specs:[]中找不到rake(>=0)(Gem::LoadError)from/usr/lib/ruby/1.9.1/rubygems/dependency.rb:256:into_spec'from/usr/lib/ruby/1.9.1/rubygems.rb:1231:in Gem'from
它是因为chef安装了自己的ruby 1.9,而安装passenger时不使用默认的rvm ruby(2.0)。我重写了这个passenger属性,但没有帮助:
“passenger”:{“Gem”{“/usr/local/rvm/wrappers/ruby-2.0.0-p353/gem”}
你能帮我吗?如果我使用ruby 2.0,乘客安装会出错:
/usr/lib/ruby/1.9.1/rubygems/dependency.rb:247:in to_specs:”在[]中找不到rake(>=0)(gem::LoadError)from/usr/lib/ruby/1.9.1/rubygems/dependency.rb:256:into_spec'from/usr/lib/ruby/1.9.1/rubygems.rb:1231:in gem'from
它是因为chef安装了自己的ruby 1.9,而安装passenger时不使用默认的rvm ruby(2.0)。我重写了这个passenger属性,但它没有帮助:
“passenger”:{“gem二进制”:/usr/local/rvm/wrappers/ruby-2.0.0-p353/gem“}
你能帮我吗?