2016-11-07 80 views
0

我的代碼動態主機:http://pastebin.com/jzrYTR2uAnsible:要映射與實例ID的

我想要實現:我的腳本應該動態地採取與特定標籤的主機,並通過各一個主機一個在執行上述任務。目前,我正在從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,部署在特定的主機上。 –