是否可以运行 SaltStack 命令,例如,查看进程是否在机器上运行,并汇总在多个 minions 上运行该命令的结果?
本质上,我希望看到从 minions 返回的所有结果都显示在 ASCII 表中。是否有可能有一个超级结果格式化程序等待所有结果返回,然后应用格式?也许还有另一种方法?
是否可以运行 SaltStack 命令,例如,查看进程是否在机器上运行,并汇总在多个 minions 上运行该命令的结果?
本质上,我希望看到从 minions 返回的所有结果都显示在 ASCII 表中。是否有可能有一个超级结果格式化程序等待所有结果返回,然后应用格式?也许还有另一种方法?
如果您想完全在 Salt 中执行此操作,我建议您创建一个“输出器”,以您想要的方式显示数据。
最近创建了一个“highstate”输出器,它可能会给你一个很好的起点。highstate 输出器创建一个返回数据的小汇总表。在这里能找到它:
https://github.com/saltstack/salt/blob/develop/salt/output/highstate.py
我建议也仔细阅读其他输出器的代码。
如果您想使用其他工具来创建此报告,我建议您在 cli 的命令中添加“--out json”。这将导致 Salt 以 json 格式返回数据,然后您可以将其通过管道传输到另一个应用程序进行处理。
很久以前有人问过这个问题,但我不止一次偶然发现它,我认为另一种方法可能有用 - 使用调查 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