1

我们使用 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)

我可以看到刀的召唤厨师,但需要作为系统宝石这样做。在刀.rb 中:

load Gem.bin_path('chef', 'knife', version)

也看过这个 SO 帖子,但我不想使用rvm-with gem。

我转而查看了 Opscode API,但这并不适合我们。有没有更好、更复杂的方法来做到这一点?

4

1 回答 1

2

我会考虑使用ridley gem:https ://github.com/RiotGames/ridley

于 2013-09-24T22:33:34.960 回答