Site icon Mr. 沙先生

Puppet 在使用 create_resources 的時候自動 refresh service

這幾天在弄 Tomcat 的時候花了一些時間在處理 resource 的編寫,在這邊是直接使用 puppetlabs/tomcat 的 module

 

這個 module 用了非常多的 resource 來寫設定檔,因為要符合彈性所以直接用 create_resources 把 tomcat resource 直接拋出去當變數,然後我就遇到了在改 Tomcat 幾乎所有設定都要 refresh service 的問題 …

 

之前沒處理過當 create_resources 更新的時候怎麼 notify service,在官方只有簡單的範例使用。

 

大概腦袋卡了一小時多,在 puppet ask 找到一篇能解答「track changes create_resources PE 2015.3.2」,原來 create_resources 可以直接用 notify、require .. 這類型的相依性 function。

 

而且用的方式還蠻簡單的 …

 

service { 'tomcat8':
  ensure => running,
}

$data = {}

create_resource('tomcat::config::context::resource', $data, { notify => Service["tomcat8"] })

 

關鍵在 $data 後面的 notify,原來可以直接使用,這樣 $data 有異動的時候就會自動 refresh tomcat8 這個 service !!

 

特此記錄

 

Exit mobile version