2011-05-23 32 views
1

我有很多服务器运行相同的代码,配置不同的配置,我想用Capistrano部署。服务器配置是这样的:部署期间Capistrano服务器的具体细节

role(:server) { ["127.0.0.1", {:name => "mymachine1"}] } 
role(:server) { ["127.0.0.2", {:name => "mymachine2"}] } 
role(:server) { ["127.0.0.3", {:name => "mymachine3"}] } 

的问题是想创造取决于服务器名称例如一个符号链接

task :setup_all_server do 
    find_servers(:roles => "server").each do |server| 
     server_name = server.options[:name] 
     run "mkdir -p #{deploy_to}/releases" 
     run "ln -s #{deploy_to}/current/scripts /home/#{user}/scripts" 
     run "ln -s #{deploy_to}/current/configuration/#{server_name} /home/#{user}/configuration" 
    end 
end 

的设置和部署适用于所有服务器不错,但有没有,如果我想只部署或设置一个服务器根据该名称的简单方法?喜欢的东西

cap deploy [:name=>"mymachine1337"] 

或者类似的东西: How to deploy to a single specific server using Capistrano

但与过滤器:命名没有松动的server.options [:名字]运行安装任务时。

回答

相关问题