У меня есть сценарий с динамическим инвентарем 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')"
- отладка: var=hostvars также дает мне информацию о тегах, но нужно знать, как использовать ее для set_facts в плейбуке
решение1
Я сам нашел ответ, проделав несколько проб и ошибок.
- set_fact: deploy: uat when: hostvars[inventory_hostname].tags.Environment == 'uat'