EC2 태그를 사용한 Ansible 작업

EC2 태그를 사용한 Ansible 작업

동적 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'

관련 정보