Saltstack:如何将信息性消息添加到长编排状态

Saltstack: how to add informational messages to long orchestration state

我有一些很长的 saltstack 编排状态,我想向它添加一些信息性消息(例如:将在 minion foo 上应用一些状态),并且必须立即打印此消息(而不是在所有操作完成之后)。

Jinja 日志消息 {% do salt.log.error("Some message) %} 不合适(它们在状态实际运行之前打印)。

test.echo 模块也不合适(所有操作完成后打印消息)

test_blabla:
  salt.runner:
    - name: salt.cmd
    - arg:
      - test.echo
      - some_blabla

有什么方法可以在状态执行期间打印消息吗?也许我遗漏了什么?

作弊是有办法的。只要您在谈论编排并且您通过 salt-run.

运行 说编排

你几乎成功了。除了将答案混入 jinja 并将错误的模块混入状态。日志消息出现在 运行s 之前的原因是因为你在 jinja 中调用它。但你不必通过神社调用它。你可以在状态下调用它。

test_blabla:
  module.run:
    - name: log.error
    - message: some_blabla

test_oh:
  salt.runner:
    - name: salt.cmd
    - arg:
      - test.sleep
      - 10

这有点古怪,因为盐不是用来做这个的。 salt 运行s async 这意味着它不会 return 直到它完成。或者可能根本不直接return,你应该在其他地方检查结果。另一种方法是让状态触发事件并观察事件总线而不是状态 运行.