2016-11-07 10 views
0

私のコードで動的なホストをマップしたい:http://pastebin.com/jzrYTR2uAnsibleは:インスタンスIDの

私は何を達成したい:私のスクリプトを動的に特定のタグを持つホストを取ると1によって各ホスト1に上記のタスクを実行する必要があります。現在、私はelb_factsモジュールからインスタンスIDを取得しています。

これまで達成したこと:私のスクリプトは最初のインスタンスをelbから取り出し、展開タスクを実行し、elbに追加します。ホストファイルは現在IPでハードコードされています

+0

「ショー」あなたのソースに外部ressourcesを使用しないでくださいを支援します。フィルタのインスタンスを要求するために、以下の例。これらのリンクが無効になった場合、後のユーザーがSOを検索するために重要な情報が失われます。 – dgw

答えて

0

boto apiを使用してAWSに接続し、フィルタを使用して必要なインスタンスを見つけます。リストを再帰的に検索してインスタンスを取得し、次にインスタンスIDを取得することができます。

filters = dict() 
filters["tag:Profile"] = node["profile"] 
filters["tag:Environment"] = environment 
filters["availability_zone"] = region + node["distribution"][index]["zone"] 
filters["tag:ServiceName"] = node['service_name'] 

instances_aws = aws_connection.get_all_instances(filters=filters) 

希望これは

+0

@Niall Whelehanに関するお返事ありがとうございます。私はelb_gather_factsからインスタンスidを集めました。私はインスタンスIDとサーバーのパブリックIPをマップし、その特定のホストにデプロイします。 –