動的 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'