Ruby on rails 使用Rails应用程序中的刀

Ruby on rails 使用Rails应用程序中的刀,ruby-on-rails,chef-infra,knife,Ruby On Rails,Chef Infra,Knife,我们正在使用Amazon的SNS通知我们的应用程序自动缩放组的更改。如果服务器终止,我们希望删除该节点 通知和自动缩放组工作正常。我唯一的问题是我无法在Rails应用程序中运行刀子命令,我猜是因为它调用了错误的Ruby版本,并试图使用应用程序的gems。我们正在使用RVM安装的ruby-2.0.0-p195,我不想捆绑Chef 因此,我尝试执行刀时的错误是: system "cd /chefroot/ && /usr/bin/knife" /Users/SM/.rvm/gems

我们正在使用Amazon的SNS通知我们的应用程序自动缩放组的更改。如果服务器终止,我们希望删除该节点

通知和自动缩放组工作正常。我唯一的问题是我无法在Rails应用程序中运行刀子命令,我猜是因为它调用了错误的Ruby版本,并试图使用应用程序的gems。我们正在使用RVM安装的ruby-2.0.0-p195,我不想捆绑Chef

因此,我尝试执行刀时的错误是:

system "cd /chefroot/ && /usr/bin/knife"

/Users/SM/.rvm/gems/ruby-2.0.0-p195@global/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem': chef is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
我可以看到刀子的呼叫厨师,但需要这样做作为一个系统宝石。在knife.rb中:

load Gem.bin_path('chef', 'knife', version)
我也看到了,但我不想将rvm与gem一起使用


我看了Opscode API,但这对我们来说并不奏效。有没有一种更好、更复杂的方法来做到这一点?

< P>我会考虑使用RIDLY GEM:

这看起来不错。我明天去看看。这应该可以做到,我并不真的想要另一块宝石,但它会节省大量的时间。