2017-03-07 62 views
0

我正在使用git资源克隆并保持我的应用程序库与chef.最新如果有什么变化,我在本地建立我的文物,但是,我也想reload我的服务,所以变化可以应用。我正在考虑使用subscribe,但我不确定。我怎样才能做到这一点?如何与厨师建立工件并重新加载服务?

.. # create application user/group/directories 

git node['mvp']['home'] do 
    repository node['mvp']['repository'] 
    revision 'master' 
    user 'mvp' 
    group 'mvp' 
    action :sync 
    notifies :run, 'execute[build]', :immediately 
end 

# builds only if necessary/changes 
execute 'build' do 
    user "mvp" 
    command 'make libs && make clean all' 
    cwd node['mvp']['home'] 
    action :nothing 
end 

template '/etc/mvp_frontend' do 
    owner 'root' 
    group 'root' 
    mode '0600' 
    source 'mvp_frontend_env.erb' 
end 

directory '/etc/systemd/system/mvp.service.d' do 
    owner 'root' 
    group 'root' 
    mode '0755' 
end 

%w(mvp_frontend mvp_quote mvp_newsfeed).each do |srvc| 
    template "/etc/systemd/system/#{srvc}.service" do 
    owner 'root' 
    group 'root' 
    mode '0755' 
    source "#{srvc}.service.erb" 
    end 

    service "#{srvc}" do 
    supports :status => true, :stop => true, :restart => true, :reload => true 
    action [:enable, :start] 
    subscribes :reload, "template[/etc/systemd/system/#{srvc}.service]", :immediately 
    end 
end 
+0

你可以使用'订阅'或'通知',没关系。您也可以在1资源中拥有其中的几个。问题是什么? –

回答

0

你的例子订阅的模板更新,你可能想订阅git的资源,而不是(或者也许是执行,但我不会走那么远)。