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 -~----------~----~----~----~------~----~------~--~---