我有一个带有动态 ec2 库存的剧本,下面是图表。
$ ansible-inventory -i inventory/dynamic_inventory/uat_aws_ec2.yaml --graph
@all:
|--@aws_ec2:
| |--xx.xxx.xx.xx
| |--xx.xxx.xx.xx
| |--xx.xxx.xx.xx
|--@nonprod_uat:
| |--xx.xxx.xx.3
| |--xx.xxx.xx.1
| |--xx.xxx.xx.2
|--@uat_auth:
| |--xx.xxx.xx.xx
|--@uat_web:
| |--xx.xxx.xx.xx
|--@ungrouped:
现在,如果我需要对特定标签使用 set_facts?例如,我需要使用类似这样的方法。
由于我已经在使用动态库存插件,我想它应该足够简单
- set_fact:
deploy: uat
when: "ec2_tags/hostgroups('nonprod_uat')"
- debug:var=hostvars 也为我提供了标签信息,但需要知道如何使用它在剧本上设置事实
答案1
经过反复尝试,我自己找到了答案
- set_fact:部署:uat 时间:hostvars[inventory_hostname].tags.Environment =='uat'