橡胶2(雾)和键对错误

cha*_*etm 11 ruby-on-rails amazon-ec2 ruby-on-rails-3 fog

嗨,我正在尝试使用ec2的橡胶宝石,但有一些问题通过快速启动部分.出于某种原因,橡胶下的雾没有找到关键对.这是详细信息:

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

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


=> #<File:/home/charlie/.ec2/gsg-keypair> 
Run Code Online (Sandbox Code Playgroud)

但每次我运行: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'
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

谢谢查理

joh*_*kes 37

我刚刚经历过这个,这就是错误的:

在rubber.yml文件中,我有:
region: us-east-1

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

在此输入图像描述

希望这可以帮助!