2017-03-07 1 views
0

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 
+0

Vous pouvez utiliser 'subscribes' ou' notifies', peu importe. Vous pouvez également en avoir plusieurs dans une ressource. Quel est le problème? –

Répondre

0

Votre exemple est abonnée à des mises à jour sur le modèle, vous voulez probablement souscrire à la ressource git au lieu (ou peut-être Execute, mais je ne serais pas aller jusque-là).