2011-10-31 18 views

Respuesta

31

Mirando el handbook, parece que se puede pasar el atributo :no_release a la definición role (comúnmente hecho para el rol web). Esto indica que el código no se debe verificar en los servidores con ese rol.

Por lo tanto, supongo que cuando una tarea especifica :except => { :no_release => true } - que está diciendo "omitir esta tarea en los servidores (roles) que tienen :no_release define como 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 

En el ejemplo anterior, la operación de reinicio no se debe ejecutar en el servidor web. De nuevo, esto no se prueba ... simplemente siguiendo mis observaciones.