Hello,

I'm sorry to dig up such an old thread but I'm facing the same issue right 
now and I really don't know how to fix it.
I run a rails app on a bunch of servers.
capistrano/rails defines different roles : web, app, resque, scheduler...
and all my infrastructure is built with ansible which generates different 
hostname aliases depending on the roles : app-1, app-2, work-1, http-1...
But as it was the case for OP, the same server can have different roles and 
I wish I could use the alias instead of the hard hostname in my capistrano 
config. I don't want to duplicate my ansible configuration...
Would you have any suggestion ?

On Thursday, May 28, 2009 12:39:01 PM UTC+2, Christian van der Leeden wrote:
>
> Hi,
>
> thanks for the input. Our setup on EC2 is structure so we can move 
> services 
> around. This is done by moving the IP and registering the host aliases in 
> DNS (dyndns).
>
> Normally the host names and IPs do not overlap. But there are times... And 
> to
> prevent capistrano from uploading and installing a release in parallel
> on two hosts that are pointing to the identical address would be asking 
> for trouble,
> wouldn't it?
>
>  I was looking for the code in capistraon where
> a task collects all the hosts that the "run" command would be executing on.
> My patch would then resolve the hostnames and remove the duplicates.
> So the resoultion of the hostname would be just before ssh would do it.
>
> I will look into the role model to see if I can make better use of this.
> But could you sketch at what classes to look if I'd like to patch the 
> "run" command
> method so it will remove duplicates?
>
> Thanks
>
> Christian
>
> On 28.05.2009, at 11:08, Lee Hambley wrote:
>
> Christian,
>
> I agree with Jamis, there're ways to do what you need that don't require 
> altering anything about Capistrano's internals, it will just require you to 
> rethink the structure of your tasks and role definitions a little; this 
> might not fit well with the EC2 extensions/code/tasks you are using, but 
> we'll all be more than HTH.
>
> - Lee
>
> 2009/5/28 Jamis Buck <[email protected] <javascript:>>
>
>>
>> My recommendation: keep the host names distinct, and just use roles to
>> indicate different purposes of identical hosts. Thus, you'd have
>> "host1" in both the app and loadbalancer roles.
>>
>> Personally, I've used the fact that Capistrano does NOT resolve host
>> names early. It's great for testing recipes, demoing (and debugging)
>> Capistrano, etc. I'd hate to see that go away.
>>
>> - Jamis
>>
>> On Wed, May 27, 2009 at 5:45 PM, Christian van der Leeden
>> <[email protected] <javascript:>> wrote:
>> >
>> > Hi,
>> >
>> >        we're deploying on EC2 and to keep the setup clean we've defined 
>> host
>> > aliase names.
>> > E.g. app1 and app2 for the app servers, lb1 for loadbalancer 1 etc.
>> >
>> > Even though the names are different the hosts are sometimes the same.
>> > E.g. load balancer
>> > is also hosting the app server 1. On a deploy the code deploy would
>> > now run in parallel
>> > on the same host (lb1 and app1 who are identical).
>> >
>> > I'm looking for ideas on how to patch (or configure) capistrano to
>> > prevent this situation.
>> >
>> > I imagine something along the lines of resolving the hostnames before
>> > running a command
>> > and then filtering out the duplicates. Is there an easy way to do
>> > accomplish this?
>> >
>> > Thanks
>> >
>> > Christian
>> >
>> >
>> > >
>> >
>>
>>
>>
>
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/capistrano/0212a66e-3b7f-4566-96be-fbb5146a495d%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to