0

我正在尝试使用 Chef-solo 为 RVM 设置食谱。

我的 run_list 看起来像:

  “运行列表”:[
    “食谱[apt]”,
    “配方[构建必要]”,
    “食谱[卷曲]”,
    “食谱[用户]”,
    “食谱[rvm::vagrant]”,
    “配方[rvm::system]”,
    “食谱[nginx::passenger]”,
    “食谱[nginx::source]”,
    “配方[postgresql::server]”,
    “食谱[postgresql::client]”
  ]

我对 RVM 和 Nginx 的属性:

  “rvm”:{
    “红宝石”:[“1.9.3-p0”],
    “全球”:[“1.9.3-p0”],
    “流浪汉”:{“system_chef_solo”:“/opt/ruby/bin/chef-solo”},
    “宝石”:{
      “1.9.3-p0”:[
        {“名称”:“捆绑者”},
        {“姓名”:“乘客”},
        {“名称”:“耙子”}
      ]
    }
  },

  “nginx”:{
    “版本”:“1.2.5”,
    “用户”:“部署”,
    “init_style”:“初始化”,
    “模块”:[
      "http_stub_status_module",
      "http_ssl_module",
      “http_gzip_static_module”
    ],
    “乘客”:{
      “版本”:“3.0.18”
    },
    “配置标志”:[
      “--add-module=/var/lib/gems/1.9.1/gems/passenger-3.0.18/ext/nginx”
    ],
    “gzip_types”:[
      “文本/纯文本”,
      "文本/html",
      “文本/CSS”,
      “文本/xml”,
      “文本/javascript”,
      “应用程序/json”,
      “应用程序/x-javascript”,
      “应用程序/xml”,
      “应用程序/xml+rss”
    ]
  },

但是,转换中断:

==================================================== ===============================

在资源“gem_package[passenger]”上执行操作“安装”时出错

==================================================== ===============================


宝石::安装错误

-----------------

乘客需要耙子 (>= 0.8.1)


资源声明:

---------------------

# 在/tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/passenger.rb

 53:gem_package '乘客'做
 54:操作:安装
 55:版本节点["nginx"]["passenger"]["version"]
 56:gem_binary 节点["nginx"]["passenger"]["gem_binary"] if node["nginx"]["passenger"]["gem_binary"]
 57:结束
 58:

编译资源:

------------------

# 在 /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/passenger.rb:53:in `from_file' 中声明

gem_package("乘客") 做
  版本“3.0.18”
  包裹名“乘客”
  提供者 Chef::Provider::Package::Rubygems
  重试延迟 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_package[passenger](nginx::passenger line 53)有一个错误:Gem::InstallError:passenger requires rake (>= 0.8 .1)
厨师从未成功完成!任何错误都应该在
上面的输出。请修复您的食谱,以便它们正确完成。

可以做什么?

4

2 回答 2

5

这是一个写的指南,使用厨师与乘客一起安装 nginx:https ://coderwall.com/p/r4lv7w

于 2013-06-28T13:59:27.870 回答
1

Nginx 需要从源代码编译,而 Apache 可以使用 Passenger 模块。这意味着,Nginx 需要知道 RVM gem 中的 Passenger 扩展的来源。

覆盖:gem_binary

“乘客”:{
      “版本”:“3.0.18”,
      “gem_binary”:“/usr/local/rvm/wrappers/ruby-1.9.3-p0/gem”
    },

应该做的伎俩。

于 2013-02-26T21:06:43.010 回答