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

Мы делаем основное управление некоторыми серверами через марионетку - сами серверы, выполненные как часть кластеризованной системы, которая обрабатывает другие аспекты как учетные записи пользователей и т.д. и включает контролирующий сценарий, который обнаруживает изменения в файлах ключей (/etc/passwd и т.п.). Если марионетка обновляет пакет, он потенциально изменяет эти файлы ключей, инициировавшие систему контроля. (который является весьма намеренным),

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

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

Существует ли способ, которым мы можем установить должностное лицо так, чтобы он только работал, если марионетка применила другие изменения?

4
задан 9 July 2014 в 13:41
1 ответ

Если ресурс exec имеет выделенную стадию, то желаемое поведение можно реализовать, подписав его на все остальные стадии, д. g.

exec { "pacify-rkhunter":
    ...
    subscribe   => Stage['pre','main','aux'],
    refreshonly => true,
}
3
ответ дан 3 December 2019 в 03:42

Теги

Похожие вопросы