安装了最新版本的软件包,它希望配置文件在包含版本号的路径中(例如 postgresql-server
),如何在我的 state.sls
文件中使用变量中的已安装版本号,以便盐主机可以:
-
以正确的路径管理配置文件
-
将此用于一些jinja模板化配置文件中的路径
如果我可以将值作为变量在sls中获取 .
我知道从cli我可以使用命令:
salt minion-id pkg.version packagename
返回类似的东西:
saltmaster:
9.4+165+deb8u2
更新:我可以得到正确的版本使用例如:
{% set pg_version = salt['pkg.version']('postgresql') %}
但只有它在下一次运行时 . 有没有办法强制依赖于此?
更新:根据问题https://github.com/saltstack/salt/issues/38072除非您使用编排,否则无法完成 .
1 回答
最接近我设法弄清楚的是使用
pkg
的available_version
部分,如果你打算安装包,那么你可以做这样的事情(基于默认软件包repo的Debian版本编号):然后在状态sls或jinja模板中使用
{{ pg_version }}
,因为它将解析为Jessie上的9.4
和拉伸(当前)上的9.6
.