Com base na resposta de delerious010, eu e um colega conseguimos criar um trabalho melhor para essa situação específica:
action :create do
global_nginx = resources('service[nginx]')
template "/etc/nginx/conf.d/#{name.tr(' ', '_')}.conf" do
cookbook 'nginx_server'
source 'server_block.conf.erb'
owner 'root'
group 'root'
mode '0644'
variables(
listen: listen,
server_name: real_server_name,
root: root,
index: index,
config: config
)
notifies :reload, global_nginx, :delayed
end
end
Obviamente, este exemplo tem apenas um único recurso sendo gerenciado, mas deve permitir que você tenha vários e apenas notifique os que deseja.
EDIT: Note que isto depende de um bug ( link ) que os Chefes de Desenvolvedores irão corrigir. Porque em 12.9.38 buscas na coleção de recursos foram feitas para recursar para outer run_contexts este código ainda funcionará, mas não será mais necessário (e irá tratar corretamente subcontextos multivididos onde você precisa pegar um recurso na raiz e não apenas o pai run_context). A melhor solução aqui deveria ser apenas atualizar.