在 Jinja 中替换和评估

Replace and eval in Jinja

我有一个像这样的字符串作为 Jinja 变量:

foo-VERSION-bar

我想用 {{ grains.lsb_distrib_release }} 替换 VERSION,我希望对其进行评估。

如果 grains.lsb_distrib_release 包含 123 我希望结果为 foo-123-bar.

如何在 jinja 中替换 eval?

将谷物的值设置为变量:

{% set version = salt['grains.get']('lsb_distrib_release', {}) %}

使用 Jinja 替换功能:

{{ "foo-VERSION-bar"|replace("VERSION", version) }}

不使用 replace Jinja 过滤器,您可以使用它的串联可能性

{{ 'foo-' ~ salt['grains.get']('lsb_distrib_release') ~ '-bar' }}