dictionary key as variable

23 views
Skip to first unread message

serkan

unread,
Apr 29, 2016, 5:12:20 AM4/29/16
to Ansible Project
Hi,
I'm developing a generic tomcat role, it gets version number as variable;
...

  roles:

  - { role: tomcat,     version: "8.0.33" }


I've mentioned download urls for some major versions at vars.yml

...

file:

        "8": ".......apache-tomcat-8.0.33.tar.gz"

        "7": "......apache-tomcat-7.0.33.tar.gz"


I would like to use this dictionary at role main.yml for given version number;


Question is, how can I use external variable as dictionary key in role task.


I tried those;


- name: copy tomcat to server

  copy: src=files/{{file[{{version}}]}} dest=/tmp/


name: copy tomcat to server

  copy: src=files/{{file.version}} dest=/tmp/


name: copy tomcat to server

  copy: src=files/{{file}}.{{version}} dest=/tmp/


Thank you.



Matt Martz

unread,
Apr 29, 2016, 7:28:39 AM4/29/16
to ansible...@googlegroups.com
You cannot nest {{ }}, instead you want:

{{ file[version] }}
--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/e2f44f64-3ed0-4fcc-96a3-9386a4df02fd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Matt Martz
@sivel
sivel.net

serkan

unread,
Apr 30, 2016, 2:36:07 AM4/30/16
to Ansible Project
Thanks Matt, it works.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscribe@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.

Johannes Kastl

unread,
May 3, 2016, 3:21:20 AM5/3/16
to ansible...@googlegroups.com
On 30.04.16 08:36 serkan wrote:
> Thanks Matt, it works.
>
> On Friday, April 29, 2016 at 1:28:39 PM UTC+2, Matt Martz wrote:
>>
>> You cannot nest {{ }}, instead you want:
>>
>> {{ file[version] }}
>>

You might want to rename your variable (file) so it does not have the
same name as a existing module. Just to avoid trouble...

Johannes

signature.asc
Reply all
Reply to author
Forward
0 new messages