Saltstack 复制具有特定扩展名的文件

Saltstack copy files with specific extension

我需要安装我从 git 中提取的特定 rpm 文件,它看起来像这样“zabbix-agent2-5.2.4-1.el7.x86_64.rpm”

这是我正在使用的状态文件:

install_pkg:
  pkg.installed:
    - sources:
      - zabbix_agen2: salt://some/path/zabbix-agent2-5.2.4-1.el7.x86_64.rpm

问题是,有指定动态文件名的选项吗?

类似于salt://some/path/zabbix-agent2*.rpm

因为此时我必须重命名源目录中的文件,例如 zabbix-agent2.rpm,但我希望在其名称中包含该版本。

sources参数采用绝对文件名,不考虑通配符。这是 pillar 可用于动态提供版本的地方(在 运行 时间)。

例如:

install_pkg:
  pkg.installed:
    - sources:
      - zabbix_agen2: salt://some/path/zabbix-agent{{ pillar['zabbix_version'] }}.el7.x86_64.rpm

支柱值可以从支柱中的 SLS 文件提供,也可以在 运行 状态文件时传递,例如:

salt myminion state.apply mypkg pillar='{"zabbix_version": "2-5.2.4-1"}'

这里我们 运行 mypkg 状态 myminion 通过提供我们想要安装的包的版本。