2011-10-31 7 views

Odpowiedz

31

Patrząc na handbook wydaje się, że można przekazać atrybut :no_release z definicją role (często wykonywane dla roli internetowej). Oznacza to, że kod nie powinien być sprawdzany na serwerach w tej roli.

Więc zgaduję, że gdy zadanie określa :except => { :no_release => true } - to mówiąc: „Skip to zadanie na serwerach (role), które mają :no_release zdefiniowany jako 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 

W powyższym przykładzie, restart nie należy uruchamiać na serwerze WWW. Ponownie, to nie jest testowane ... tylko przez moje obserwacje.