2011-10-31 1 views

Répondre

31

En regardant le handbook, il semble que vous pouvez passer l'attribut :no_release à la définition role (couramment fait pour le rôle web). Cela indique que le code ne doit pas être extrait sur les serveurs dans ce rôle.

Donc, je suppose que quand une tâche précise :except => { :no_release => true } - il est dit « Passer cette tâche sur les serveurs (rôles) qui ont :no_release définis comme true. »

role :app, "your app-server here" 
role :web, "your web-server here", :no_release => true 
role :db, "your db-server here", :primary => true 

...

desc "restart passenger" 
task :restart, :except => { :no_release => true } do 
    run "touch #{current_path}/tmp/restart.txt" 
end 

Dans l'exemple ci-dessus, l'opération de redémarrage ne devrait pas fonctionner sur le serveur Web. Encore une fois, ce n'est pas testé ... juste en passant par mes observations.