我正在寻找关于厨师的重启机制如何在幕后工作的解释。我在网上找不到任何文档,而且我在试图追踪代码时遇到了困难(触发器是令人毛骨悚然的远距离动作)。
让我们具体看一下nginx,并假设我们使用的是厨师服务器而不是chef-solo(我不知道这是否会有所不同)。
我在食谱中有这个(例如):
template '/etc/nginx/nginx.conf' do
source 'nginx.cfg.erb'
owner "root"
group "root"
mode 00755
notifies :reload, "service[nginx]", :delayed
end
该notifies :reload位意味着它会触发重新加载,并且:delayed意味着它将在chef-client运行结束时发生。这在幕后是如何运作的?我在跟踪执行线程时遇到了麻烦。
必须在某个地方chef-client运行service nginx reload或沿着这些路线运行。这是在哪里以及如何定义的?