我在同一帐户下有两个VPC,每个VPC都有几个带私有IP的主机。
我有一个标记mobile
等于true
的主机和另一个标记为Environment
的主机等于ci
,两者都具有相同的私有IP,但是它们位于不同的VPC中。
当我使用Ansible运行以下标记搜索时:
- name: "install security service"
hosts: "tag_Environment_{{ env }}:&tag_Service_{{ service }}_true"
使用参数env="ci"
和service="mobile"
我收回了其中一个主机,即使每个主机都没有这两个标签。
由于它们具有相同的IP,似乎搜索正在合并结果,因此返回只有一个标记的主机。
答案 0 :(得分:0)
是的,ec2.py
广告资源脚本使用vpc_destination_variable
参数来命名主机
对于VPC,它通常设置为ec2.ini中的private_ip_address
,因此您的广告资源中只能有一个具有相同IP的主机。
为了克服您的情况,您可以尝试使用instance_filters
来过滤主机,然后再将其保存到广告资源。
# Retrieve only instances with (key=value) env=staging tag
# instance_filters = tag:env=staging
# Retrieve only instances with role=webservers OR role=dbservers tag
# instance_filters = tag:role=webservers,tag:role=dbservers
# Retrieve only t1.micro instances OR instances with tag env=staging
# instance_filters = instance-type=t1.micro,tag:env=staging
# You can use wildcards in filter values also. Below will list instances which
# tag Name value matches webservers1*
# (ex. webservers15, webservers1a, webservers123 etc)
# instance_filters = tag:Name=webservers1*