Резина 2 (туман) и ошибка ключевой пары

Привет, я тестирую резиновую жемчужину с ec2, но некоторые проблемы попадают в раздел быстрого запуска. По какой-то причине Туман под каучуком не находит ключ. Вот деталь:

в 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/[email protected]/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/[email protected]/gems/excon-0.15.4/lib/excon/connection.rb:105:in `request'
from /home/charlie/.rvm/gems/[email protected]/gems/fog-1.5.0/lib/fog/core/connection.rb:20:in `request'
from /home/charlie/.rvm/gems/[email protected]/gems/fog-1.5.0/lib/fog/aws/compute.rb:368:in `request'
from /home/charlie/.rvm/gems/[email protected]/gems/fog-1.5.0/lib/fog/aws/requests/compute/run_instances.rb:117:in `run_instances'
from /home/charlie/.rvm/gems/[email protected]/gems/fog-1.5.0/lib/fog/aws/models/compute/server.rb:182:in `save'
from /home/charlie/.rvm/gems/[email protected]/gems/fog-1.5.0/lib/fog/core/collection.rb:50:in `create'
from /home/charlie/.rvm/gems/[email protected]/gems/rubber-2.0.5/lib/rubber/cloud/fog.rb:27:in `create_instance'
from /home/charlie/.rvm/gems/[email protected]/gems/rubber-2.0.5/lib/rubber/thread_safe_proxy.rb:13:in `method_missing'
from /home/charlie/.rvm/gems/[email protected]/gems/rubber-2.0.5/lib/rubber/recipes/rubber/instances.rb:295:in `create_instance'
from /home/charlie/.rvm/gems/[email protected]/gems/rubber-2.0.5/lib/rubber/recipes/rubber/instances.rb:215:in `block (2 levels) in create_instances'

любая идея, почему это происходит?

Спасибо Charlie

Ответ 1

Я просто испытал это, и это было не так:

В файле rubber.yml у меня было:
region: us-east-1

Однако, когда я создал свою пару ключей в консоли AWS, я был в другом регионе.
Вы должны создать пару ключей в том же регионе, что указано в файле rubber.yml.

enter image description here

Надеюсь, это поможет!

Ответ 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

My config/rubber/rubber.yml точно так же, как и выше, и он работает. Спасибо Johnnycakes за это!

Ответ 3

Извините за "возрождение" старой проблемы, но это может быть полезно для кого-то.

У меня была аналогичная проблема, за исключением того, что мои регионы были точно такими же. Моя проблема заключалась в том, что я переименовал ключевой файл и выглядел так, что его следует назвать точно как "имя пары ключей" в AWS/EC2/Keypairs.

Ответ 4

Я добавил эту строку в свой файл rubber/deploy.rb и позаботился об этом. Эта строка использовалась как [по умолчанию] start-wizard-1 - это имя моего экземпляра ec2 aws. Добавить.. assign_security_groups: [мастер запуска-1].