Passing variable in EC2 Inventory Plugin

259 views
Skip to first unread message

prasanth s

unread,
Jul 17, 2019, 9:07:02 AM7/17/19
to Ansible Project

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
Reply all
Reply to author
Forward
0 new messages