On Mon, Jul 6, 2009 at 9:06 AM, Gary
Richardson<gary.richard...@gmail.com> wrote:
> Hmm. That's odd..$CAPISTRANO:HOST$ wasn't working for me on Friday. Must be
> them gremlins.
> Is there another variable I can use to get the current host in the ruby
> code? This is what I'm trying to do:

Short answer: no.

Longer answer: yes, kind of.

Keep in mind one key concept: capistrano does not run a command on
each server sequentially; it runs the commands on all servers in
parallel. Thus, within a task, there is no such thing as a "current
host". What you have is a set of servers that match the current task,
and all commands invoked within that task will run in parallel on that
set of servers.

So, what you can do is get the list of matching servers:

  task :bootstrap, :roles => :master do
    servers = find_servers_for_task(current_task)
    servers.each do |server|
       puts "host: #{server.host}"
    end
  end

- Jamis

>   task :bootstrap, :roles => [:master] do
>         # instanceids is an array containing hostname => instanceid
> id = instanceids["$CAPISTRANO:HOST$"]
> run "register_host -H $CAPISTRANO:HOST$ -s #{id}"
>   end
> Obviously, $CAPISTRANO:HOST$ doesn't interpolate on the id = instanceids[]
> line.
> Thanks!
> On Mon, Jul 6, 2009 at 3:31 AM, Rafael G. <r...@aspgems.com> wrote:
>>
>> Gary Richardson wrote:
>> > Hey,
>> >
>> > Two part question that I haven't been able to answer:
>> >
>> > 1) can I get the current host a task is executing on? I've read some
>> > stuff about $CAPISTRANO:HOST$, but it doesn't seem to work for me
>> I tested this task and works for me:
>>
>>    task :host_name do
>>        run "host $CAPISTRANO:HOST$"
>>    end
>>
>> What OS are you using? Could you paste your deploy.rb in
>> someplace(gist.github, pastie,...)?
>>
>> > 2) if I have an array of values (let's say an array that maps ec2 host
>> > names to ec2 instance id's), can I use this same method to look up
>> > something from that array?
>> Capistrano uses ruby If you can do it with ruby you can do the same in a
>> capistrano task.
>>
>> --
>> Rafa
>>
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To post to this group, send email to capistrano@googlegroups.com
To unsubscribe from this group, send email to 
capistrano+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.co.uk/group/capistrano?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to