2012-09-20 5 views
5

고무를 사용하거나 Amazon EC2에 배포 한 것은 이번이 처음입니다. 나는 이것을 따라 가고있다 Railscast. 나는 모든 것을 봤 거든 아무도이 문제가있는 것 같지 않아. 저는 여기에 실행할 때 내 콘솔 로그의 cap rubber:create_staging :고무를 사용하여 jRoR 앱을 전개하고 NoMethodError를 얻으려고 시도하는 중 : 정의되지 않은 메소드 'authorize_port_range'for nil : NilClass

[email protected]:~/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/[email protected]/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/[email protected]/gems/rubber-2.1.0/lib/rubber/thread_safe_proxy.rb:13 
    sync_security_groups at /home/user529789/.rvm/gems/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:208 
    setup_security_groups at /home/user529789/.rvm/gems/[email protected]/gems/rubber-2.1.0/lib/rubber/recipes/rubber/security_groups.rb:51 
      create_instance at /home/user529789/.rvm/gems/[email protected]/gems/rubber-2.1.0/lib/rubber/recipes/rubber/instances.rb:255 
      create_instance at /home/user529789/.rvm/gems/[email protected]/gems/rubber-2.1.0/lib/rubber/recipes/rubber/instances.rb:254 
     create_instances at /home/user529789/.rvm/gems/[email protected]/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 

답변

0

내 생각 엔 그것의 범위를 찾고 스택 추적 당신이 특히 JRuby를 될 수있는, 범위는 하나 개의 포트에서 동일한 포트와 루비이다주는 것입니다 포트 범위를 잘못 해석합니다.

당신은 IRB

(22..22).to_a에 JRuby를 버전에서 실행하려고하면 무엇을 얻을 볼 수 있습니다. mri에서 [22]을 얻을 수 있지만 jruby에는 구현 버그가있을 수 있습니다.

내가 생각하는 실패의 시간에 실행중인 코드가 여기에 있습니다 : 몇 분을 찾고 후 https://github.com/rubber/rubber/blob/v2.1.0/lib/rubber/cloud/fog.rb#L182

편집

을, 그것의 명확한 고무 안개 보석에 인수를 전달하는 내가 ' 범위가 해결 될지 모르지만 안개가 그것을 사용하는 방식은 범위를 기대합니다. 21-23 또는 22-23 범위를 시도해보고 오류가 지나치는지 확인하십시오. 또한 참고로 사용중인 고무의 버전은 마스터 버전보다 훨씬 뒤떨어져 있습니다. 나는 이것을 원하고 있음을 명기 할 아무런 언급이 없지만 그것을 알고 있어야한다. 행운을 빕니다.

0
나를 위해 일한 해결은 모든이의 효과 확실하지 '거짓'으로 '진실'에서 보안 그룹과 관련된 모든 옵션을 rubber.yml

으로 이동하여 설정하는 것입니다

그러나 그것은 통과하는 것처럼 보인다.