2

EC2でサーバーをプロビジョニングするためにフォグを使用しています。

私は持っています:

EC2 = Fog :: Compute.newプロバイダー:'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'、
                              タグ:{名前:TAGGED_NAME}、
                              ユーザー名:ROOT_USER

それをrakefileで実行するとs = EC2.servers.bootstrap、長時間ハングします。

何か考えや指針はありますか?

4

1 に答える 1

1

私もこの問題に遭遇しました。いくつかの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
于 2013-02-22T22:48:11.260 に答える