Ansible resolve dictionary key or parameter variable

290 views
Skip to first unread message

Eli Finkelshteyn

unread,
Jan 6, 2015, 5:36:50 AM1/6/15
to ansible...@googlegroups.com
In Ansible, if I try to use a variable as a parameter name, or a key name, it is never resolved. For example, if I have `{{ some_var }}: true`, or:

    template: "{{ resolve_me_to_src }}": "some_src"

the variables will just be used literally and never resolve. My specific use case is using this with the ec2 module, where some of my tag names are stored as variables:

- name: Provision a set of instances
      ec2:
        group: "{{ aws_security_group }}"
        instance_type: "{{ aws_instance_type }}"
        image: "{{ aws_ami_id }}"
        region: "{{ aws_region }}"
        vpc_subnet_id: "{{ aws_vpc_subnet_id }}"
        key_name: "{{ aws_key_name }}"
        wait: true
        count: "{{ num_machines }}"
        instance_tags: { "{{ some_tag }}": "{{ some_value }}", "{{ other_tag }}": "{{ other_value }}" }
      
Is there any way around this? Can I mark that I want to force evaluation somehow?

Eli

Eli Finkelshteyn

unread,
Jan 6, 2015, 2:14:00 PM1/6/15
to ansible...@googlegroups.com
By the way, I'm on 1.8.2, in case that helps.

Dan Vaida

unread,
Jan 10, 2015, 2:09:18 PM1/10/15
to ansible...@googlegroups.com
Where are you defining those variables that you expect to be resolved by instance_tags? For example, are you doing it in host_vars/localhost?
BTW, have you had a look at http://docs.ansible.com/ec2_tag_module.html?
Reply all
Reply to author
Forward
0 new messages