【问题标题】:Saltstack: how to add informational messages to long orchestration stateSaltstack:如何将信息消息添加到长编排状态
【发布时间】:2021-12-29 08:11:55
【问题描述】:

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

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

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

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

有没有办法在状态执行期间打印消息?也许我错过了什么?

【问题讨论】:

    标签: jinja2 salt-stack


    【解决方案1】:

    有办法作弊。只要您在谈论编排并且您正在通过salt-run 运行所述编排。

    而你几乎拥有它。除了将答案合并为 jinja 并将错误的模块合并为状态。日志消息在任何运行之前出现的原因是因为您在 jinja 中调用它。但您不必通过 jinja 调用它。你可以在状态中调用它。

    test_blabla:
      module.run:
        - name: log.error
        - message: some_blabla
    
    test_oh:
      salt.runner:
        - name: salt.cmd
        - arg:
          - test.sleep
          - 10
    

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

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 2016-05-21
      • 2020-06-27
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多