Referencing the current server in Capistrano task
apc, capistrano, deployment, php, ruby
Solution
There's the magical $CAPISTRANO:HOST$
run "curl http://$CAPISTRANO:HOST$/deploy/clearAPC.php"
should do exactly what you want.
note: don't use it as a variable via string interpolation, capistrano will just replace the $CAPISTRANO:HOST$ in the string itself.
That's a very weird and (afaik) undocumented feature :-)
Problem
How would I reference the current server in a Capistrano task? I want to `curl` a local file to clear the APC cache but the server does not listen on `localhost` so I need the server's IP address. For instance, ``` role :web, "1.1.1.1", "2.2.2.2", "3.3.3.3" task :clear_apc, :role => :web do run "curl http://#{WHAT_DO_I_PUT_HERE}/deploy/clearAPC.php" end ``` What variable would I use so that when the task is run on 1.1.1.1 it `curl`s `http://1.1.1.1/deploy/clearAPC.php` but when run on 2.2.2.2 it calls `curl`s `http://2.2.2.2/deploy/clearAPC.php`