J'utilise la ressource git
pour cloner et garder mon dépôt d'application à jour avec chef.
Si quelque chose a changé, je construis mes artefacts localement, cependant, je voudrais aussi reload
mes services afin que les changements peuvent sois appliqué. Je pense à utiliser subscribe
pour cela, mais je ne suis pas sûr. Comment puis-je atteindre cet objectif ?Comment créer des artefacts et recharger des services avec Chef?
.. # 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
Vous pouvez utiliser 'subscribes' ou' notifies', peu importe. Vous pouvez également en avoir plusieurs dans une ressource. Quel est le problème? –