安装了最新版本的软件包,它希望配置文件在包含版本号的路径中(例如postgresql-server
),如何在我的内部使用的变量中获取已安装的版本号state.sls
文件,以便盐主人可以:
如果我可以在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,除非您使用编排,否则无法完成。
答案 0 :(得分:0)
我设法弄清楚的最接近的是使用available_version
的{{1}}部分,如果你打算安装包,那么你可以做这样的事情(基于Debian版本编号)来自默认包repo):
pkg
然后在状态sls或jinja模板中使用{% set pg_raw_available_version = salt['pkg.available_version']('postgresql') %}
{% set pg_available_version = pg_raw_available_version.split('+') %}
{% set pg_version = pg_available_version[0] %}
,因为它将在Jessie上解析为{{ pg_version }}
并在拉伸(当前)时解析为9.4
。