$ cap foo HOSTFILTER=bg2.lan
** skipping `foo' because no servers matched
** [out :: bg2.lan] 2

Problem solved.

On Oct 13, 12:40 pm, octave <[email protected]> wrote:
> Hi all,
>
> Here is my deploy.rb:
> ------------------
> set :application, "myapp"
> set :user, "www"
>
> role :bg1, "bg1.lan"
> role :bg2, "bg2.lan"
>
> default_run_options[:pty] = true
>
> task :foo do
>   run "echo 1", :roles => :bg1
>   run "echo 2", :roles => [ :bg1, :bg2 ]
> end
> ------------------
>
> $ cap foo
> ** [out :: bg1.lan] 1
> ** [out :: bg1.lan] 2
> ** [out :: bg2.lan] 2
>
> For example, I want to run "foo" task but evaluate code that addresses
> desired role?
>
> $ cap foo ROLES=bg2
> ** [out :: bg2.lan] 1
> ** [out :: bg2.lan] 2
>
> But I didn't expected that it will run "echo 1" on bg2, cause it's not
> addressed to it.
> I've expected only:
> ** [out :: bg2.lan] 2
>
> ------------------
>
> I have 10 servers to deploy to, but almost every time, I need to
> deploy only selected ones, using the same tasks I use for deploy.
> For example, to run "cap deploy ROLES=bg2" and do all the chain of
> tasks, filtering by those, which is addressed for bg2.
>
> Are there any solution?
> Thank you in advance.

-- 
* You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
* To post to this group, send email to [email protected]
* To unsubscribe from this group, send email to 
[email protected] For more options, visit this group at 
http://groups.google.com/group/capistrano?hl=en

Reply via email to