仅当预期 return 时,SaltStack 结果才会成功

SaltStack result success only if return is expected

我正在使用 win_wua.list 检查服务器是否有可用更新

update_system:
  module.run:
    - name: win_wua.list

问题是,如果服务器有未决更新或状态结果为“真”,则没有计量器 但我的目标是 运行 这作为 post-check 所以我希望只有当 return 在任何其他情况下“与 return 无关”时状态才“成功”如果我希望状态为结果“False”

LKA5:
----------
          ID: update_system
    Function: module.run
        Name: win_wua.list
      Result: True
     Comment: Module function win_wua.list executed
     Started: 17:04:29.326587
    Duration: 4017.653 ms
     Changes:
              ----------
              ret:
                  Nothing to return

Summary for LKA5
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:   4.018 s
LKA3:
----------
          ID: update_system
    Function: module.run
        Name: win_wua.list
      Result: True
     Comment: Module function win_wua.list executed
     Started: 17:04:25.563111
    Duration: 7113.497 ms
     Changes:
              ----------
              ret:
                  Nothing to return

Summary for LKA3
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:   7.113 s

所以有两个模块可以使用 Saltstack 管理 Windows 更新:

似乎您正在使用执行模块,无论系统的当前状态如何,它总是 运行s。因此它将始终报告为已更改。另一方面,如果需要更新,状态模块只会 运行。

以下状态 ID 将确保系统已更新(按指定),并将报告为已更改。然后我们可以使用 requisite system 来触发另一个状态。

示例:

# Including driver updates for example
update_system:
  wua.uptodate:
    - drivers: True

# Verify if further updates are there
verify_updates:
  module.run:
    - name: win_wua.list
    - install: True
    - onchanges:
        - wua: update_system

在上面的例子中,如果 update_system 没有更新任何东西(没有更新),那么 verify_updates 就不会 运行。如果更新了某些软件包,则 verify_updates 将 运行。根据您的用例,可以考虑其他必要条件(上面链接)。