更新除内核之外的所有已安装包

Update all installed packages except kernels

我正在尝试创建一个状态来更新除 Kernels 之外的所有已安装的包。 我有以下更新所有已安装软件包的状态:

common_uptodate:
  pkg.uptodate:
    - refresh: True
    - order: last

但是,它不支持 exclude 标志。

有没有人有办法做这样的事情?

谢谢。

如果您的 minion 使用 APT 作为包管理器,我建议使用带有 "hold" 功能的 saltstack 模块 aptpkg。 您可以尝试这样使用它:

run_pkg_hold:
  module.run:
    - name: pkg.hold
    - pkgs: kernelpackages...

您可以通过 运行 在 minion 上使用特定的包保留命令来使用解决方法,使用 cmd.run:(因为您的升级将在最后执行,所以应该没有问题)

run_pkg_hold:
  cmd.run:
    - name: 'apt-mark hold <pkg-name>'

这取决于 OS 你的随从。