Hello Team,
I am using the EC2 Inventory plugin to build a dynamic inventory for ansible to run. The inventory is built based on certain ec2 instance tags mentioned in the filters section of the plugin config so that I can run ansible targetting specific instances based on their tags. Everything works as expected when I hard code the value of the tags in the plugin config directly. Unfortunately, when I try specifying a variable instead of the actual value, it doesn’t work. It just returns “[WARNING]: Could not match supplied host pattern, ignoring: role_server”.
From the below config, I am passing a variable ‘var1’ as value for the tag ‘cluster_name’. The value for this variable is mentioned in group_vars/all. After some research, I found that group_vars or host_vars are acknowledged only on the task level and not on the inventory level. Do we have any workaround to make this work?
`
plugin: aws_ec2
regions:
- xxxxxxx
keyed_groups: - key: tags.role
prefix: role_
separator: “”
groups:
role_all: “‘role’ in (tags|list)”
compose:
set the ansible_host variable to connect with the private IP address without changing the hostname
ansible_host: private_ip_address
filters:
tag:role:
- server
- worker
tag:cluster_name: - “{{ var1 }}”
`
Thanks,
Prasanth