4

是否可以运行 SaltStack 命令,例如,查看进程是否在机器上运行,并汇总在多个 minions 上运行该命令的结果?

本质上,我希望看到从 minions 返回的所有结果都显示在 ASCII 表中。是否有可能有一个超级结果格式化程序等待所有结果返回,然后应用格式?也许还有另一种方法?

4

2 回答 2

3

如果您想完全在 Salt 中执行此操作,我建议您创建一个“输出器”,以您想要的方式显示数据。

最近创建了一个“highstate”输出器,它可能会给你一个很好的起点。highstate 输出器创建一个返回数据的小汇总表。在这里能找到它:

https://github.com/saltstack/salt/blob/develop/salt/output/highstate.py

我建议也仔细阅读其他输出器的代码。

如果您想使用其他工具来创建此报告,我建议您在 cli 的命令中添加“--out json”。这将导致 Salt 以 json 格式返回数据,然后您可以将其通过管道传输到另一个应用程序进行处理。

于 2013-08-08T03:35:17.200 回答
1

很久以前有人问过这个问题,但我不止一次偶然发现它,我认为另一种方法可能有用 - 使用调查 Salt runner:

$ salt-run survey.hash '*' cmd.run 'dpkg -l python-django'
|_
  ----------
  pool:
      - machine2
      - machine4
      - machine5
  result:
      dpkg-query: no packages found matching python-django
|_
  ----------
  pool:
      - machine1
      - machine3
  result:
      Desired=Unknown/Install/Remove/Purge/Hold
      | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
      |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
      ||/ Name           Version      Architecture Description
      +++-==============-============-============-=================================
      ii  python-django  1.4.22-1+deb all          High-level Python web development
于 2016-10-14T15:30:41.627 回答