web-dev-qa-db-ja.com

Puppet:Puppetが変更を加えた場合にのみexecを実行する方法

Puppetを介して一部のサーバーの基本的な管理を行っています-サーバー自体は、ユーザーアカウントなどの他の側面を処理し、キーファイル(/ etc/passwdなど)の変更を検出する監視スクリプトを含むクラスター化されたシステムの一部として実行されます。 puppetがパッケージを更新すると、これらのキーファイルが変更され、監視システムがトリガーされる可能性があります。 (これは意図的ではありません)

監視システムには、状態をクリアするために手動で実行できるコマンドがあり、puppetが変更を適用するたびに、電子メールの受信を開始するときにこれを実行する必要があります。

コマンドを実行するためにpostrun_stageで実行するexecを定義できますが、これはデフォルトでpuppetが実行されるたびに起動し、変更が行われたかどうかに関係なく、レポートは常にpuppetが変更を加えたものとして表示されます。

Puppetが他の変更を適用した場合にのみ実行されるようにexecを設定する方法はありますか?

4
anthonysomerset

execリソースに専用のステージがある場合は、他のすべてのステージにサブスクライブさせることで、目的の動作を実装できます。

exec { "pacify-rkhunter":
    ...
    subscribe   => Stage['pre','main','aux'],
    refreshonly => true,
}
3
Felix Frank