如何比较 salt sls 文件中的版本字符串

How to compare version strings in salt sls files

saltstack 是否有等同于 puppets versioncmp() 的函数?或者,有没有办法在 jinja+yaml 呈现的 sls 文件中获取 distutils.version 或 packaging.version.parse 方法(如 Compare version strings in Python 中所述)?

您可以使用模块 pkg.version_cmp:

# salt-call pkg.version_cmp '1.0.2' '1.1.1'
local:
    -1
# salt-call pkg.version_cmp '0.2.4.1-0ubuntu1' '0.2.4-0ubuntu1'
local:
    1

在 jinja 中,您可以像这样使用它:

{% if salt['pkg.version_cmp']('1.1.0','1.0.5') > 0 %}
  ....
{% endif %}