Very cool!
Thank You Jamis
On Apr 4, 12:51 pm, Jamis Buck <[EMAIL PROTECTED]> wrote:
> On Apr 4, 2007, at 9:03 AM, maui wrote:
>
>
>
> > Hi everyone,
>
> > Over here we're using multiple OSs for our rails app. Our dev env is
> > on a FreeBSD box and we're using TextDrive Accelerators for deployment
> > (OpenSolaris). As a result we need to customize a few of our tasks
> > based on the server type. One idea we had was to use extra
> > information to indicate which servers are running OpenSolaris. For
> > example s1.foo.com is running FreeBSD and s1.foo.com is running
> > Solaris.
>
> > role :app, "s1.foo.com"
> > role :app, "s2.foo.com", :solaris => true
>
> > So, the question is can a task see which server it is being executed
> > on? For instance:
>
> > task :restart do
> > if <extra information for this server hash>[:solaris]
> > run 'svcadm restart /network/mongrel'
> > else
> > mongrel_rails cluster::restart
> > end
> > end
>
> > Does the magic code in angle brackets above exist?
>
> Mark, no, because the task is not executed once for each server, but
> once for all matching servers. The "right" way to do that would be to
> put the different parts in different tasks, and put the condition on
> the task:
>
> task :restart do
> restart_solaris
> restart_other
> end
>
> task :restart_solaris, :only => { :solaris => true } do
> run 'svcadm restart /network/mongrel'
> end
>
> task :restart_other, :except => { :solaris => true } do
> run "mongrel_rails cluster::restart"
> end
>
> Hope that helps,
>
> Jamis
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---