Bra*_*yer 6 php ruby deployment capistrano apc
如何在Capistrano任务中引用当前服务器?我想要curl一个本地文件来清除APC缓存,但是服务器没有监听,localhost所以我需要服务器的IP地址.
例如,
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
Run Code Online (Sandbox Code Playgroud)
我会用这样当任务在1.1.1.1运行它什么变量curls ^ http://1.1.1.1/deploy/clearAPC.php但是当2.2.2.2运行它调用curls ^http://2.2.2.2/deploy/clearAPC.php
use*_*559 28
在Capistrano中,每个服务器都不会执行一次任务,run会在每个服务器上执行命令.这是你应该做的事情:
task :clear_apc, :role => :web do
find_servers_for_task(current_task).each do |current_server|
run "curl http://#{current_server.host}/deploy/clearAPC.php", :hosts => current_server.host
end
end
Run Code Online (Sandbox Code Playgroud)
接受的答案将起作用,但是这个答案允许您作为变量/方法访问服务器
pau*_*kul 11
有神奇的$ CAPISTRANO:HOST $
run "curl http://$CAPISTRANO:HOST$/deploy/clearAPC.php"
Run Code Online (Sandbox Code Playgroud)
应该做你想要的.
注意:不要通过字符串插值将它用作变量,capistrano只会替换字符串本身中的$ CAPISTRANO:HOST $.
这是一个非常奇怪和(afaik)无证的功能:-)
| 归档时间: |
|
| 查看次数: |
6505 次 |
| 最近记录: |