【问题标题】:Rubber 2 (fog) and keypair error橡胶 2(雾)和密钥对错误
【发布时间】:2012-07-30 12:50:53
【问题描述】:

您好,我正在使用 ec2 试用橡胶 gem,但在通过快速入门部分时遇到了一些问题。由于某种原因,橡胶下的雾找不到密钥对。详情如下:

在 irb 中(这里的路径是我的 Rubber.yml key_file 属性中的内容 - gsg-keypair 是我的私钥,没有 pem 扩展名,它的公钥在同一个目录中):

1.9.3p125 :010 > File.open("#{Dir[(File.expand_path('~') rescue '/root') + '/.ec2/*'].first}")


=> #<File:/home/charlie/.ec2/gsg-keypair> 

但每次我运行:cap Rubber:create_staging 接受所有默认值时,我都会得到这个:

/home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/excon-0.15.4/lib/excon/connection.rb:276:in `request_kernel': The key pair 'gsg-keypair' does not exist (Fog::Compute::AWS::NotFound)
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/excon-0.15.4/lib/excon/connection.rb:105:in `request'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/fog-1.5.0/lib/fog/core/connection.rb:20:in `request'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/fog-1.5.0/lib/fog/aws/compute.rb:368:in `request'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/fog-1.5.0/lib/fog/aws/requests/compute/run_instances.rb:117:in `run_instances'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/fog-1.5.0/lib/fog/aws/models/compute/server.rb:182:in `save'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/fog-1.5.0/lib/fog/core/collection.rb:50:in `create'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/rubber-2.0.5/lib/rubber/cloud/fog.rb:27:in `create_instance'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/rubber-2.0.5/lib/rubber/thread_safe_proxy.rb:13:in `method_missing'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/rubber-2.0.5/lib/rubber/recipes/rubber/instances.rb:295:in `create_instance'
from /home/charlie/.rvm/gems/ruby-1.9.3-p125@bag/gems/rubber-2.0.5/lib/rubber/recipes/rubber/instances.rb:215:in `block (2 levels) in create_instances'

知道为什么会这样吗?

谢谢 查理

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 amazon-ec2 fog


    【解决方案1】:

    我刚刚经历过,这就是问题所在:

    在我的 Rubber.yml 文件中:
    region: us-east-1

    但是,当我在 AWS 控制台中创建密钥对时,我位于不同的区域。
    您必须在 Rubber.yml 文件中指定的同一区域中创建密钥对。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      在新的 AWS 界面中,区域位于右上角。选择您想要的任何区域,只需确保您的 config/rubber/rubber.yml 文件准确无误:

      cloud_providers:
      aws:
      # REQUIRED The AWS region that you want to use.
      # 
      # Options include
      #us-east-1
      # eu-west-1
      # ap-northeast-1
      # ap-southeast-1
      # ap-southeast-2
      #
      region: us-east-1
      

      我的config/rubber/rubber.yml 与上面的完全一样,并且可以正常工作。感谢 Johnnycakes 解决了这个问题!

      【讨论】:

        【解决方案3】:

        很抱歉“恢复”旧问题,但这可能对某人有用。

        我有类似的问题,除了我的地区完全相同。 我的问题是我重命名了密钥文件,看起来它应该完全命名为 AWS/EC2/Keypairs 中的“密钥对名称”。

        【讨论】:

          【解决方案4】:

          我将这一行添加到我的 Rubber/deploy.rb 文件中,并且它处理了它。此行曾经是 [默认] launch-wizard-1 是我的 ec2 aws 实例的名称。添加 .. 分配的安全组:[launch-wizard-1]。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-09-05
            • 2014-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-17
            相关资源
            最近更新 更多