2017-02-13 6 views
3

シェフレシピが実行されているEC2インスタンス名を動的に取得するにはどうすればよいですか?私は、コードシェフレシピ内のEC2インスタンス名の取得

ここでインスタンスIDを印刷する方法
Ohai.plugin(:EC2) do 
provides "ec2" 
depends "ec2" collect_data do 
instance_id = ec2['instance_id'] 
end 
end 

の下に使用しています

@coderanger?

答えて

3

EC2インスタンスIDを意味すると仮定すると、EC2 ohaiプラグインがアクティブ化されていればnode['ec2']['instance_id']にあります。インスタンスがknife ec2 server createで作成された場合、これは自動的に実行され、EC2を使用しているかどうかを推測しようとする不完全な自動有効化があります。これらのいずれも該当しない場合は、/etc/chef/ohai/hints/ec2.jsonに空のファイルを作成することによって強制できます。

+0

私はインスタンス名ではなくインスタンス名を探しています。あなたは@Daveを – Dave

+0

に案内してもらえますか?私は今、同じ問題を扱っています。 ec2インスタンス名はメタデータの一部ではなく、タグです。したがって、インスタンス上で 'aws ec2 describe-instances'を実行し、そこから取得する必要があります。 – codeforester

+0

残念ながら、タグデータをインスタンス自体から直接取得する方法はありません。 'describe-instance' APIコールを実行する権限を持つIAMインスタンスプロファイルを使用し、それを使用することはできますが、すべてのサーバが他のすべてのサーバを見ることができるように「自己」に制限することはできません。セキュリティの結果。 Amazonは、タグがAPI全体の一部ではないと考えているようで、自動化には使用しないでください。 – coderanger

関連する問題