使用 saltstack 从列表中检查谷物

Checking grains out of list with saltstack

我想检查是否已经安装了特定版本的程序。 因此,我得到了一个状态文件:

{% set rvs = ['1113','1278'] %}

{% for rv in rvs %}

{% if ('r{{ rv }}' not in grains.get('cat12', [])) %}

... install it ...

{% else %}

... do nothing ...

{% endif %}

{% endfor %}

我的谷物中有:

cat12:
  - r1113

我希望“1278”已安装并且列表项“1113”不会触发任何内容,但即便如此也会再次安装...

没有在{%%}中使用{{}}这样的语法。 {%%} 里面的东西已经是 Jinja。只需使用 ~ 运算符连接字符串文字和字符串变量。

{% if 'r' ~ rv not in grains.get('cat12', []) %}

或者您可以使用格式过滤器:

{% if 'r%s'|format(rv) not in grains.get('cat12', []) %}