Ansible:想要使用instance-id'来映射动态主机

时间:2016-11-07 11:24:22

标签: ansible ansible-inventory

我的代码:documentation

我想要实现的目标:我的脚本应该动态地使用具有特定标记的主机,并逐个在每个主机上执行上述任务。目前,我正在从elb_facts模块中获取instance-id。

到目前为止我所取得的成就:我的脚本将从elb中取出第一个实例,执行部署任务,添加回elb。 hosts文件当前使用IP进行硬编码

1 个答案:

答案 0 :(得分: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)

希望这有帮助