2012-03-30 3 views
4

Unten ist mein Rezept für die Installation von monit. Ich führe den Chefclient alle 60 Sekunden zum Debuggen.chef startet einen Dienst neu, wenn keine Änderungen an einer erb-Vorlage vorgenommen werden

Chef wenn Neustart alle 60 Sekunden. Nein, hör ich damit auf? Ich dachte, Chef wird neu starten, wenn sich ein Tempel ändert.

[Fri, 30 Mar 2012 06:12:18 +0000] INFO: Processing package[monit] action install (monit::default line 5) 
[Fri, 30 Mar 2012 06:12:18 +0000] INFO: Processing service[monit] action enable (monit::default line 9) 
[Fri, 30 Mar 2012 06:12:18 +0000] INFO: Processing service[monit] action start (monit::default line 9) 
[Fri, 30 Mar 2012 06:12:18 +0000] INFO: Processing template[monitrc] action create (monit::default line 14) 
[Fri, 30 Mar 2012 06:12:18 +0000] INFO: template[monitrc] mode changed to 644 
[Fri, 30 Mar 2012 06:12:18 +0000] INFO: template[monitrc] sending restart action to service[monit] (immediate) 
[Fri, 30 Mar 2012 06:12:18 +0000] INFO: Processing service[monit] action restart (monit::default line 9) 
[Fri, 30 Mar 2012 06:12:22 +0000] INFO: service[monit] restarted 
[Fri, 30 Mar 2012 06:12:22 +0000] INFO: Processing template[monitstart] action create (monit::default line 25) 



package "monit" do 
    action :install 
end 

service "monit" do 
    supports :status => true, :restart => true, :start => true,:stop => true 
    action [ :enable, :start ] 
end 

template "monitrc" do 
    path "/etc/monit/monitrc" 
    source "monitrc.erb" 
    owner "root" 
    group "root" 
    mode "0644" 
    #notifies :restart, resources(:service => "monit") 
    #notifies :restart, "service[monit]" 
    notifies :restart, resources(:service => "monit"), :immediate 
end 

template "monitstart" do 
    path "/etc/default/monit" 
    source "monit.erb" 
    owner "root" 
    group "root" 
    mode "0644" 
    notifies :restart, "service[monit]" 
    #notifies :restart, resources(:service => "monit"), :immediate 
end 

Antwort

5

Jedes Mal monit Dienst startet er die Datei kann /etc/monit/monitrc Erlaubnis zu 600, so dass nur root ändert lesen e es schreiben, wahrscheinlich irgendeine Art von Sicherheitsverstärkung.

Aber wenn Ihr Rezept läuft, ändert es die Berechtigung auf 644 und startet den Dienst neu, der die Datei mit 600 zurücksetzt. Es ist wie ein Hund, der seinem eigenen Schwanz hinterher jagt.

Eine einfache Lösung wäre, Ihr Rezept so zu ändern, dass 600 auf die Vorlage angewendet wird, um den Neustart zu vermeiden.