2013-12-19 62 views
3

我在清單我要運行的大部分時間只有木偶保證服務只在運行時不處於維護模式

service{ $service_name : 
    ensure => "running", 
    enable => "true", 
} 

事情傀儡基本服務檢查是有期維護我想確保木偶不會出現並嘗試啓動備份。

我想在指定的路徑中創建一個文件「no_service_start」,並執行一個'創建'檢查,就像你可以用一個守護進行exec操作一樣,但它看起來並不像服務類型那樣。

我的下一個想法是讓實際的服務初始化腳本檢查這個文件本身,如果該文件存在,就提前死掉。

儘管這樣做的目的是阻止服務啓動,但它在puppet中表現爲一個大的紅色錯誤(如預期的那樣)。鑑於服務未啓動是一個理想的結果,如果該文件已到位,我寧願沒有錯誤消息存在,不得不花時間考慮它是否「合法」。

這是應該實施更多的「傀儡」的方式嗎?

回答

0

我真的不喜歡這個答案,而是要解決木偶救助保護文件的B/C時吐出的錯誤是必須的init腳本正在做的是檢查與保釋退出代碼爲0

0

正如仙鹹所說,你可以在傀儡大師身上做到這一點。如果你有一個腳本,返回runningstopped作爲一個字符串,根據當前時間或任何東西,你可以寫這樣的:

service{ $service_name : 
    ensure => generate('/usr/local/bin/maintenanceScript.sh'); 
} 
2

定義維護時正在發生的事實。

然後把服務定義放在一個基於該事實的if塊中。

if !maintenance 
{ 
    service{ $service_name : 
     ensure => "running", 
     enable => "true", 
    } 
} 

然後當傀儡編譯目錄如果維修==真正的服務將無法管理,並留在任何狀態它目前正好是。