Well, I can appreciate that each Task has its own server scope, but I was looking for a more generic way to just classify a Task for all servers, regardless of role. In fact, I have such a homogeneous environment, I didn't want to classify systems into roles. I merely wanted to express that a task was applicable to all servers, regardless of role (or absence of one, for that matter).
On Mar 15, 8:09 pm, Jamis Buck <[EMAIL PROTECTED]> wrote: > The problem is that the task in question has no explicit :roles > setting, and so is invoked on all servers. Note that each task has > its own server scope--the server scope is not inherited from the > calling task. > > The solution is to put the appropriate :roles setting on the > stop_default_apache task. > > - Jamis > > On Mar 15, 2007, at 11:07 AM, The Zed wrote: > > > > > Hello, > > > I must be overlooking something because I do not understand cap's > > behaviour. The problem seems simple: > > > why is the task stop_default_apache called for storage roles? > > > To present my problem here, I simplified my context to the following: > > > role :app, "10.0.0.14" > > role :app, "10.0.0.15" > > role :static, "10.0.0.14" > > role :storage, "10.0.0.45" # st015 > > role :storage, "10.0.0.46" # st016 > > > task :after_setup do > > after_setup_common > > after_setup_app > > after_setup_storage > > after_setup_static > > end > > > task :after_setup_storage, :roles => :storage do > > end > > > task :after_setup_app, :roles => :app do > > stop_default_apache > > end > > > task :after_setup_static, :roles => :static do > > stop_default_apache > > end > > > task :stop_default_apache do > > run 'echo "Stopping apache on $HOSTNAME"' > > sudo "httpd -k stop" > > end > > > Here is the relevant part of the output: > > > * executing task after_setup > > * executing task after_setup_common > > * executing task install_ssh_key > > * executing task after_setup_app > > * executing task stop_default_apache > > * executing "echo \"Stopping apache on $HOSTNAME\"" > > servers: ["10.0.0.14", "10.0.0.15", "10.0.0.45", "10.0.0.46"] > > [10.0.0.14] executing command > > [10.0.0.45] executing command > > [10.0.0.46] executing command > > ** [out :: 10.0.0.14] Stopping apache on wb004 > > ** [out :: 10.0.0.45] Stopping apache on st015 > > [10.0.0.15] executing command > > ** [out :: 10.0.0.46] Stopping apache on st016 > > ** [out :: 10.0.0.15] Stopping apache on wb005 > > command finished > > > I am puzzled, could anyone explain this ? > > > -- Arnaud. > > > P.S. > > > $ cap -V > > /usr/bin/cap:17:Warning: require_gem is obsolete. Use gem instead. > > Capistrano v1.4.1 --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---
