11

嗨,我正在使用 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'

知道为什么会这样吗?

谢谢查理

4

4 回答 4

37

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

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

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

在此处输入图像描述

希望这可以帮助!

于 2012-08-09T15:11:40.693 回答
3

在新的 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 解决了这个问题!

于 2013-06-23T06:41:52.893 回答
1

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

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

于 2015-01-26T12:56:54.730 回答
0

我将此行添加到了我的 Rubber/deploy.rb 文件中,并且它处理了它。此行曾经是 [default] launch-wizard-1 是我的 ec2 aws 实例的名称。添加..assigned_security_groups:[launch-wizard-1]。

于 2016-01-06T21:57:04.223 回答