5

ラバーを使用したり、Amazon EC2 にデプロイしたりするのはこれが初めてです。このRailscastをフォローしています。私はいたるところでグーグルで検索しましたが、他の誰もこの問題を抱えているようには見えません。実行時のコンソールログは次のcap rubber:create_stagingとおりです。

user529789@user529789-M15x:~/develops/grouper$ cap rubber:create_staging
    triggering load callbacks
  * executing `rubber:init'
  * executing `rubber:create_staging'
Hostname to use for staging instance [production]: 
Roles to use for staging instance [apache,app,collectd,common,db:primary=true,elasticsearch,examples,graphite_server,graphite_web,graylog_elasticsearch,graylog_mongodb,graylog_server,graylog_web,haproxy,mongodb,monit,passenger,postgresql,postgresql_master,web,web_tools]: 
  * executing `rubber:create'
Excon nonblock is not supported by your OpenSSL::SSL::SSLSocket
Excon nonblock is not supported by your OpenSSL::SSL::SSLSocket
  * Creating new security group: grouper_production_default
  * Creating new rule: {"source_group_name"=>"grouper_production_default", "source_group_account"=>"<account id redacted>"}
[DEPRECATION] authorize_group_and_owner is deprecated, use authorize_port_range with :group option instead
  * Creating new rule: {"protocol"=>"tcp", "from_port"=>"22", "to_port"=>"22", "source_ips"=>["0.0.0.0/0"]}
NoMethodError: undefined method `authorize_port_range' for nil:NilClass
  add_security_group_rule at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/cloud/fog.rb:182
                     send at org/jruby/RubyKernel.java:2088
           method_missing at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/thread_safe_proxy.rb:13
     sync_security_groups at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:221
                     each at org/jruby/RubyArray.java:1615
     sync_security_groups at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:220
                     each at org/jruby/RubyArray.java:1615
     sync_security_groups at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:214
                     each at org/jruby/RubyArray.java:1615
     sync_security_groups at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:208
    setup_security_groups at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:51
          create_instance at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/instances.rb:255
          create_instance at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/instances.rb:254
         create_instances at /home/user529789/.rvm/gems/jruby-1.6.7.2@grouper/gems/rubber-2.1.0/lib/rubber/recipes/rubber/instances.rb:217
                     call at org/jruby/RubyProc.java:270
                     call at org/jruby/RubyProc.java:224
4

2 に答える 2

0

私の推測では、範囲を探しており、スタック トレースで指定している範囲は 1 つのポートから同じポートとルビーまでであり、特に jruby はポート範囲を誤って解釈している可能性があります。

irb の jruby のバージョンで実行してみてください。

(22..22).to_aそして何が得られるか見てください。mri では取得できます[22]が、jruby では実装のバグがある可能性があります。

失敗時に実行中のコードはここにあると思います: https://github.com/rubber/rubber/blob/v2.1.0/lib/rubber/cloud/fog.rb#L182

編集

さらに数分間探した後、ゴムが引数をフォグ ジェムに渡すことは明らかであり、範囲が解決されたとしても、フォグがそれを使用している方法では範囲が期待されると確信しています。21 から 23 または 22 から 23 のような範囲を試して、エラーを回避できるかどうかを確認してください。また、注意として、使用しているラバーのバージョンは、マスター バージョンよりもかなり遅れています。これが望ましいかどうかを特定するための参照はありませんが、注意する必要があります。幸運を。

于 2013-08-05T19:43:06.620 に答える