Niedawno zacząłem pracować nad receptur kucharz i próbowałem dowiedzieć się o subskrybowaniu / powiadomieniu w kuchni

Scenariusz: napisał przepis, aby zainstalować pakiet Sendmail, posiadać lokalną kopię Sendmail.mc na Chefie, który wdrażam na węzła [Klient].

Przeczytałem o powiadomieniu / subskrybowaniu i tym, co próbuję zrobić, to wtedy, gdy nastąpiła zmiana w pliku sendmail.mc w /etc/mail/sendmail.mc Sendmail usługa powinna być cykliczna.

Dla którego używam subskrybentów. Ale kiedy ręcznie zmieniam sendmail.mc na kliencie, aby wywołać szef kuchni, aby zastąpić plik i czekać na ponowne uruchomienie usługi dla Sendmail widzę poniższy błąd

  • Usługa [Sendmail] Nic (pominięte z powodu działania: nic)
package "sendmail"

service "sendmail" do
    action [:enable, :start] 
end 

cookbook_file '/etc/mail/sendmail.mc' do
    action [:create]
    source 'sendmail.mc'
    owner 'root'
    group 'root'
end

service 'sendmail' do
    subscribes :restart, 'file[/etc/mail/sendmail.mc]', :immediately
end
0
Sriraag 6 grudzień 2019, 15:32

1 odpowiedź

Najlepsza odpowiedź

Myślę, że duplikat usługa definicja o tej samej nazwie ( "Sendmail" może być powodem. Ale także twoje subskrybenty skierowane są do niewłaściwego pliku zamiast Cookbook_File !

Biorąc pod uwagę, że większość użytkowników i publicznych książek kucharskich używa " powiadomić " zamiast " subskrybentów ", przepisałem go do:

package 'sendmail'

cookbook_file '/etc/mail/sendmail.mc' do
  source 'sendmail.mc'
  owner 'root'
  group 'root'
  action :create
  notifies :restart, 'service[sendmail]', :immediately # not sure about the *:immediately* here, usually at the end of converge is sufficient.
end

service 'sendmail' do
  action [:enable, :start]
end
1
Roland 6 grudzień 2019, 13:15