2013-04-09 14 views
11

EC2コマンドラインAPIを使用して新しいAWS EC2インスタンスを作成する際に、いくつかのユーザーデータを新しいインスタンスに渡しています。EC2インスタンスに渡すユーザーデータが正常に機能しているかどうかを確認するにはどうすればよいですか?

ここで、そのユーザーデータが実行されたかどうかを知りたがっていますか?

どうすればよいですか?その1は、理想的にまとめたように、ユーザデータのスクリプトの出力からリアルタイムのアクセスを獲得したいと考え、通常は積極的にプロセスにフックする方法はありませんようAmazon EC2

+0

AMIに依存してモーダルウィンドウを開く必要があり、システムログを取得し、それはクラウドのinitをサポートしている場合、実行されます。そうでない場合は、メタデータリクエストを介して利用できるようになり、そこから処理する必要があります。 – datasage

+0

@datasage:私はクラウド対応のAMIを使用しています。 – Pravin

答えて

2

デバッグユーザデータのスクリプトは、確かに少しぎこちないですエリック・ハモンドの記事Logging user-data Script Output on EC2 Instances:あなたがリモートでそれを見ることができるように

最近のUbuntuのAMIはまだ、コンソール 出力にユーザーデータスクリプトを送信しないが、それはインスタンス上 syslogにはもはや利用可能です。コンソールの出力は、インスタンスの起動、再起動、または終了後わずか数分だけ更新されます( )。 は、ユーザーデータスクリプトの出力を表示するだけでなく、 スナップショット後に出力される可能性がある出力。あれば、それは素晴らしい作品けれどもあなたは(すぐにLogglyなどのリモートロギング機能にログを出荷する場合がありますが、これは十分に早く設置し得ることが明らかに鶏/卵の問題の親切にすることができ、あなたの設定に応じて

AMIはあたかも既に同様に設定されています)。

+0

S3cmsコマンドとs3fsコマンドをユーザーデータの一部としてE2インスタンスに渡すことはできますか? – Pravin

+0

@Pravin - もちろん、ユーザーデータスクリプトは普通のシェルスクリプトです。つまり、コマンドラインで何ができるのか基本的には可能です。ローカルのシェルスクリプトで実行します。もちろん、s3fsのような要件がEC2インスタンスにインストールされていることを確認する必要があります。つまり、すでにAMIによって提供されているか、ユーザーデータスクリプトから自分でプロビジョニングされてから順番に使用されます。 –

+0

: - 私はAMIにs3cmdをインストールし、この事前設定されたAMIを使用して、新しいインスタンスを作成しています。このため、私は新しいインスタンスに新しいディレクトリを作成し、S3からファイルをダウンロードするというユーザデータを渡しています。 しかし、このスクリプトは、S3からダウンロードファイルではなくディレクトリのみを作成します。 次のリンクをご覧くださいhttp://stackoverflow.com/questions/16130952/passing-s3cmd-commands-as-user-data-to-ec2 – Pravin

1

は、ユーザーのデータは、それが動作するかどうかを確認するためにあなたのEC2の/ tmpディレクトリにファイルを作成しておいてください。

bob.txt:

ec2-run-instances -f bob.txt -t t1.micro -g ServerPolicy ami-05cf5c6d -v

+0

私はec2インスタンスにユーザーデータとしてs3cmdとs3fsコマンドを渡すことができますか? – Pravin

+0

あなたのスクリプトは、プリインストールされて読み込まれている限り、起動時に遠隔マシン上で実行されます(初期段階で)。 –

11

#!/bin/sh 
echo 'Woot!' > /home/ec2-user/user-script-output.txt 

は、その後で起動

以下の手順で確認できます

    0あなたはすべてのログのユーザーデータスクリプトのを見ると、それができ
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log

に打ち上げEC2インスタンス上

  • SSHユーザーデータスクリプトの
  • チェックログ/etc/cloudフォルダも作成されます。

  • 4

    EC2コンソールからシステムログを見て、ユーザーデータが実行されたかどうかを確認することができます。右のインスタンスをクリックします - インスタンスの設定を -

    enter image description here

    これは、システムログ

    enter image description here

    関連する問題