【问题标题】:Salt and jinja variablesSalt 和 jinja 变量
【发布时间】:2018-09-27 16:29:15
【问题描述】:

我想在我的状态下使用变量作为参数:

我在 map.jinja 中有价值:

'package_9.6': '3.7.5-1',

我在我的状态下声明了变量:

{% set package_version = '9.6' %}

然后我添加了字符串:

{% set something = "my_package.package_" ~ package_version %}

并且想在我的州使用这一切

{% from "somewhere/map.jinja" import my_package with context %}
      pkg.installed:
        - pkgs:
          - my_package: {{ something }}

在完美的宇宙中,我想将变量的值解析为 map.jinja (3.7.5-1) 中的值。但我得到 my_package.package_9.6 字符串。

也许这是完全错误的方式来满足我的需求,但经过一些实验后我得到了这个选项。

【问题讨论】:

    标签: jinja2 salt-stack


    【解决方案1】:

    您需要在状态文件中导入map.jinja 文件以使用变量之前使用它们。

    {% from "path-to-map" import map with context %}
    

    在您的map.jinja 文件中,变量应声明为

    {% set package_9.6 = '3.7.5-1' %}
    

    然后您可以在状态文件中使用,

    {% set something = "my_package.package_" + map.package_9.6 %}
    

    【讨论】:

    • 这正是我所做的。我收到错误 E: Version 'my_package.package_9.6' for 'my_package' was not found 。如果我无法访问 map.jinja,我会得到类似 Jinja variable 'dict object' has no attribute ...
    • 你需要 esape 。以及 9\.6
    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2022-01-10
    • 2020-10-20
    • 2020-09-30
    • 2021-03-17
    相关资源
    最近更新 更多