2013-08-07 4 views
3

Возможно ли запустить команду SaltStack, которая, скажем, смотрит, работает ли процесс на машине и агрегирует результаты выполнения этой команды на нескольких миньонах?Как я могу агрегировать результаты команды SaltStack?

По сути, я хотел бы увидеть все результаты, которые возвращаются от миньонов, отображаемых в чем-то вроде таблицы ASCII. Возможно ли иметь форматировщик uber-result, ожидающий возвращения всех результатов, затем применяет формат? Может быть, есть другой подход?

ответ

3

Если вы хотите сделать это полностью в Солт, я бы рекомендовал создать «выход», который отображает данные, как вы хотите.

Недавно был создан выход «highstate», который может дать вам хорошую отправную точку. Вывод высокого уровня создает небольшую сводную таблицу возвращаемых данных. Его можно найти здесь:

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

Я рекомендовал бы просматривал код других outputters, а также.

Если вы хотите использовать другой инструмент для создания этого отчета, я бы рекомендовал добавить «-out json» к вашей команде в cli. Это приведет к тому, что Salt вернет данные в формате json, которые затем можно будет передать в другое приложение для обработки.

+0

Кроме того, для государств конкретно, вы могли бы посмотрите на 'terse' или' mixed' state output. Для получения дополнительной информации ознакомьтесь с шаблоном главной конфигурации, там есть опция. – basepi

+0

Спасибо за ссылку! Это действительно хорошая отправная точка. Можете ли вы также указать ссылку на то, где вызывается этот выход? Мне нужно понять, как данные возврата от всех миньонов объединяются, а затем передаются на выход. – Bryan

1

Это был задан давно, но я наткнулся на него несколько раз, и я думал, что другой подход может быть полезным - использовать обзорную соли бегун:

$ 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