将jinja2字符串取消引用到var中?

时间:2016-12-13 01:32:41

标签: ansible jinja2

我有这样的事情:

item = bar
foobar = { a: b, b: c }

然后在jinja模板中:

{{'foo' ~ item}}

我试图找出如何获取foobar的,但这只是返回字符串foobar

我尝试了一些事情:

{{('foo' ~ item).a}}
{{'foo' ~ item.a}}
{{{{'foo' ~ item}}.a}}

最终,它们以字符串foobar形式出现,而不是评估变量foobar ..除了最后一个,它只是断开。 I'd know how to reference it if it was a dict key ..但我不知道如何这样做。

(具体来说,这来自于在Ansible中将字符串与{{item}}组合在一起。所以答案是' t"使用{{foobar.a}}"。)

1 个答案:

答案 0 :(得分:2)

您可以使用以下脚本:

---
- hosts: localhost
  become: true
  vars:
    - itemn: bar
    - foobar: {"a":"b", "b":"c"}

  tasks:
    - debug: msg="{{vars['foo' ~ itemn]['a']}}"