Linux
Puppet:只有在 puppet 進行了更改時才執行 exec
我們正在通過 puppet 對一些伺服器進行基本管理 - 伺服器本身作為集群系統的一部分執行,該系統處理使用者帳戶等其他方面,並包含一個監控腳本,用於檢測關鍵文件(/etc/passwd 等)的變化。如果 puppet 更新一個包,它可能會更改這些觸發監控系統的關鍵文件。(這不是無意的)
監控系統有一個可以手動執行的命令來清除狀態,我們必須在每次 puppet 應用任何更改時執行此操作,當我們開始收到電子郵件時!
我們可以定義一個在 post run_stage 中執行的 exec 來執行命令,但預設情況下,每次 puppet 執行時都會觸發,然後我們的報告將始終顯示為 puppet 進行了更改,無論是否進行了更改。
有沒有一種方法可以設置 exec 使其僅在 puppet 應用了其他更改時執行?
如果
exec
資源有一個專用階段,您可以通過讓它訂閱所有其他階段來實現所需的行為,例如exec { "pacify-rkhunter": ... subscribe => Stage['pre','main','aux'], refreshonly => true, }