使用Jinja表达式比较state.sls内部的两个纹理值

时间:2019-07-16 13:43:03

标签: jinja2 salt-stack

我正在创建一个状态,如果两个颗粒都不匹配,它将触发某个模块。我尝试了几种选择,但是没有运气。

基于比较,False将触发我的模块,并且该模块将更改GRAIN_B值以与GRAIN_A匹配。因此,在每个高态期间,除非GRAIN_A发生变化,否则不会触发我的模块。

请提出任何建议。

我尝试了几种神兽表情。

{% if grains['GRAIN_A'] not in grains.get('GRAIN_B','None') %}
{% set GRAIN_B = grains.get('GRAIN_B','None') %}
{% if grains['GRAIN_A'] != {{ GRAIN_B }} %}```

```{% if grains['GRAIN_A'] not in grains.get('GRAIN_B','None') %}
MY_MODULE:
  module.run:
   - func: MYMODULE.FUNCTION_A
{% endif %}```

1 个答案:

答案 0 :(得分:0)

问题已解决,我的GRAIN_A输出中有一个\ n字符,这使得评估条件失败。

此条件已经有效。

{% if grains['GRAIN_A'] not in grains.get('GRAIN_B','None') %} MY_MODULE: module.run: - func: MYMODULE.FUNCTION_A {% endif %}