我使用雾来配置EC2上的服务器。
我有:
EC2 = Fog::Compute.new provider: 'AWS', aws_access_key_id: AWS_ACCESS_KEY, aws_secret_access_key: AWS_SECRET_KEY s = EC2.servers.bootstrap image_id: AMI_ID, flavor_id: FLAVOR_ID, private_key_path: '~/.ssh/id_rsa', public_key_path: '~/.ssh/id_rsa.pub', tags: { Name: TAGGED_NAME }, username: ROOT_USER
当我在rakefile中运行它并且它在s = EC2.servers.bootstrap
上挂了很长时间。
有任何想法或指示吗?
答案 0 :(得分:1)
我也遇到了这个问题。经过几次EC2实例部署后,我最终陷入困境(它实际上工作了一晚,第二天早上就被卡住了。)
我的快速修复是登录Amazon EC2,删除与我的部署关联的密钥对.. IE:
EC2 = Fog::Compute.new provider: 'AWS',
region: REGION,
aws_access_key_id: AWS_ACCESS_KEY,
aws_secret_access_key: AWS_SECRET_KEY
Fog.credential = waffles
s = EC2.servers.bootstrap image_id: AMI_ID,
flavor_id: FLAVOR_ID,
private_key_path: '~/.ssh/id_rsa',
public_key_path: '~/.ssh/id_rsa.pub',
tags: { Name: TAGGED_NAME },
username: ROOT_USER
这将创建一个名为“fog_waffles b6:21:d1:3d:2b:b9:e7:48:b9:75:50:3f:03:5b:fb:85”的密钥对。删除它,你应该能够继续前进。
据我所知如果您创建一个具有相同密钥对名称的新实例,则密钥对不会更新/替换。如果删除该实例,然后使用具有相同名称的新密钥对创建新实例,则似乎会遇到问题。
更多关于EC2 keypairs
<强>附录强>
我使用的雾版本是1.9。
如果您有多人创建实例,您可能希望使用以下内容:
EC2 = Fog::Compute.new provider: 'AWS',
region: REGION,
aws_access_key_id: AWS_ACCESS_KEY,
aws_secret_access_key: AWS_SECRET_KEY
Fog.credential = waffles
s = EC2.servers.bootstrap image_id: AMI_ID,
flavor_id: FLAVOR_ID,
private_key_path: '~/.ssh/id_rsa',
public_key_path: '~/.ssh/id_rsa.pub',
tags: { Name: TAGGED_NAME },
username: ROOT_USER
EC2.delete_key_pair("fog_waffles")
这将确保密钥对永远不会发生冲突。删除它是可以的,因为它只需要部署实例。部署实例后,Fog会将您的公钥放入authorized_keys,这样您就可以访问该实例。
另一种选择是将Fog.credential更改为每个用户的唯一(而不是删除它)。 IE:
Fog.credential = waffles_ryan