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

関連情報