2013-08-20 21 views
10

私は、インスタンスが作成されるときに自動的にroute53でインスタンスを登録する手段を設定しようとしている塩を使用して、この記事だ:http://cantina.co/2012/01/25/automated-dns-for-aws-instances-using-route-53/AWSのインスタンスからインスタンス名を取得するにはどうすればよいですか?

記事は、インスタンス-idとし、ホスト名を取得するためにec2-metadataを使用しています。インスタンス内でbashを使用してインスタンス名を取得する方法があるかどうかは疑問です。 ec2-metadataはインスタンスIDのみを表示しているようです。前もって感謝します。

答えて

0

bashではどのように見えるかわかりませんが、インスタンスIDを取得できる場合はインスタンス自体からSDKを使用できます。あなたはec2訴求者に問い合わせて、ec2インスタンスidを渡します。参照 - これらは、あなたが探しているものかもしれない場合はまず第一に、Amazon EC2インスタンスメタデータサービスも、instance-id以外にかなりの他のを提供

i = ec2.instances["i-12345678"] 
puts i.dns_name 
10

:ルビーを使用すると同じように見えますSDK Instance Metadata Categories

  • hostnameからインスタンスのプライベートホスト名。複数のネットワークインタフェースが存在する場合、eth0デバイス(デバイス番号が0のデバイス)を指します。
  • local-hostname - インスタンスのプライベートDNSホスト名。複数のネットワークインタフェースが存在する場合、eth0デバイス(デバイス番号が0のデバイス)を指します。
  • public-hostname - インスタンスのパブリックDNS。インスタンスがVPC内にある場合、このカテゴリは、enableDnsHostnames属性がtrueに設定されている場合にのみ返されます。

あなたががAWS Management Consoleにさらさよう名前を探しているなら、あなたは確かにそれを取得するためにTools for Amazon Web Servicesのいずれかを使用してに頼る必要があるだろう - 名前は事実普通のタグであることキーTagging Your Amazon EC2 Resources参照)を使用します。これは、ほとんどのAWSサービスで明白な目的のために使用されています。 --queryオプションを内蔵した可能何よりも高度なCLI JSON出力処理については

aws ec2 describe-tags \ 
--filters Name=resource-id,Values=i-abcd1234 Name=key,Values=Name \ 
--query Tags[].Value --output text 
+3

ます--queryコマンドラインパラメータを--outputと一緒に使用して、インスタンス名だけを直接出力することもできます。例えば、次のようになります: 'aws ec2 describe-tags --filters Name = resource-id、Values = i-abcd1234 Name = key、Values =名前--queryタグ[]。値 - 出力テキスト ' –

+1

@CarlosP - 本当に簡単な方法で答えを更新しました(' --query'オプションはAWS CLIで利用できませんでしたget go)、これを指摘してくれてありがとう! –

-2

私の設定で動作しない記述タグが見つかりましたが、「UnauthorizedOperation」エラーで失敗しました。手に入れたこの記述-インスタンスでの作業:〜/ .aws /設定:

aws ec2 describe-instances --filters Name=instance-id,Values=$(wget -qO- http://instance-data/latest/meta-data/instance-id) --query Reservations[].Instances[].Tags[].Value --output text 

コマンドは、現在のユーザーのAWSから設定ファイルの[デフォルト]セクションを領域とアクセスキーを使用。他のユーザーの地域/キー(AWSコンソールのIAMのダッシュボードで見つけることができる)を使用する必要がある場合は、[USER2]例えば、そのファイル内の別のセクションに追加して、このようなコマンドで使用することができます。

​​3210
関連する問題