동적 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: 배포: uat when: hostvars[inventory_hostname].tags.Environment == 'uat'