ansible - variable within variable

后端 未结 2 488
执笔经年
执笔经年 2021-01-01 20:44

Ansible 1.9.2 version.

Does Ansible supports variable expansion within a variable while evaluating it.

I have a task to download 3 zip files from Artifactory

2条回答
  •  抹茶落季
    2021-01-01 21:16

    It does.

    You can use

    set_fact:
      variable: '{{ vars['my_' + variablename + '_variable'] }}'
    

    the only downside of this approach so far is, it won't dynamically expand variables that get the value of another variable. an example:

    roles/xxx/defaults/main.yml:

    var1: foo
    var2: '{{ var1 }}'
    

    This, unfortunately will not work when trying to use the resolved value in var2. Hence,

    - debug: msg='{{ vars["var2"] }}'
    

    will output {{ var1 }} instead of foo.

    Workaround:

    In your vars declaration, instead of using var2: {{ var1 }}, use var2: '{{ vars["var1"] }}'. That way, it will work.

提交回复
热议问题