Как регистрировать изменения состояния из SaltStack?

У меня много серверов (более 50), все они получают конфигурацию из Salt Stack (и мне это пока нравится). Но вся эта автоматизация меня немного беспокоит. Если я запланирую запуск соли на всех серверах каждую ночь, как я могу убедиться, что изменения применяются правильно? Могу ли я регистрировать изменения, чтобы я мог ежедневно просматривать любые изменения на своих серверах или, по крайней мере, устранять неполадки, какие соли волшебным образом меняются за ночь?

Прямо сейчас, если я запускаю соль '*' state.highstate на мастере, я получаю много страниц вывода на экран, а затем мне приходится много прокручивать, чтобы найти какие-либо изменения. Кроме того, этот процесс является ручным. Я бы хотел что-то запланированное и автоматизированное.


person Trevor Allred    schedule 09.10.2014    source источник


Ответы (2)


По умолчанию данные о запусках заданий из Salt возвращаются мастеру. Указание возвратных устройств гарантирует, что данные также отправляются на указанные интерфейсы возвратных устройств.

Указание того, какие средства возврата использовать, выполняется при вызове команды:

salt '*' test.ping --return smtp_return

Может быть полезно включить определенные данные, чтобы отличить задание от других заданий. Возьмем, к примеру, модуль расписания. С помощью параметра метаданных значение может быть связано с запланированным заданием, хотя эти значения метаданных не используются при выполнении задания, их можно использовать для поиска определенного задания позже.

job1:
  schedule.present:
    - function: state.apply
    - seconds: 1800
    - splay: 5
    - metadata:
        foo: bar

Пример поиска работы на сайте salt-master может выглядеть примерно так:

salt-run jobs.list_jobs search_metadata='{"foo": "bar"}'

Взгляните на salt.runners.jobs. и документацию returners для получения дополнительных примеров.

person Roald Nefs    schedule 20.02.2017

Одной из возможностей, которую я рассматриваю, является повышение уровня ведения журнала. на миньоне к информации. Затем используйте logstash для использования /var/log/salt/minion и используйте Elasticsearch или Kibana для отслеживания изменений в журналах.

person Trevor Allred    schedule 09.10.2014
comment
Почему бы не использовать для этой цели инструмент непрерывной интеграции, такой как Jenkins? - person nmadhok; 04.11.2014
comment
Использование Logstash Logging Handler вы сможете напрямую анализировать журналы соли в logstash. - person Roald Nefs; 18.07.2017
comment
Я предполагаю, что обработка такого рода логов является очень грязной задачей и не приведет к желаемому результату. - person vskubriev; 10.09.2020