Мы используем Puppet + Foreman для отслеживания изменений в среде путем проверки пользовательских фактов. Например, когда настраиваемый факт равен «истинному», марионетка вызывает ресурс Notify с сообщением, отправленным в журнал агента. Puppet включает это сообщение в отчет агента, а Форман показывает это в пользовательском интерфейсе.
Проблема в том, что всякий раз, когда создается сообщение, Foreman считает это действие «Применено», а статус узла меняется на «Активный» (синий значок). Мы хотим, чтобы узел оставался в состоянии «Без изменений» (зеленый), а также отображал сообщение с уведомлением.
Возможно ли это каким-то образом? Может быть, определить новый пользовательский тип ресурса?
Есть ли способ использовать ресурс Notify, не заставляя марионетку сообщать об изменении узла? Это означает просто распечатать сообщение в журнале клиента (и, следовательно, сообщение будет отображаться в отчете), но без марионетки классифицировать событие как примененную конфигурацию? Причина в том, что когда марионетка запускает ресурс Notify, Foreman помечает узел как активный (измененный).
Вот код марионетки:
class mymodule::myclass::mysubclass {
if $::fact023 == 'fail' {
notify {'mynotify1':
message => "WARNING: Node ${::fqdn} failed fact023",
loglevel => hiera('warnings_loglevel'),
} } }
Смотрите скриншот:
ОБНОВЛЕНИЕ # 1 Я подумываю об изменении файла отчета Foreman, чтобы пользовательский интерфейс игнорировал события Notify, чтобы статус узла оставался неизменным, но все равно отображал сообщение в отчете. Может ли кто-нибудь указать мне правильное направление?