我正在寻找关于厨师的重启机制如何在幕后工作的解释。我在网上找不到任何文档,而且我在试图追踪代码时遇到了困难(触发器是令人毛骨悚然的远距离动作)。
让我们具体看一下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
或沿着这些路线运行。这是在哪里以及如何定义的?