私もこの問題に遭遇しました。いくつかのEC2インスタンスがデプロイされた後、私は行き詰まりました(文字通り、1泊で動作し、翌朝行き詰まりました)。
私の簡単な修正は、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キーペアの詳細
補遺
私が使用しているフォグのバージョンは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にドロップします。これにより、インスタンスにアクセスできるようになります。
もう1つのオプションは、Fog.credentialを(削除するのではなく)ユーザーごとに一意になるように変更することです。IE:
Fog.credential = waffles_ryan