2011-05-23 34 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 [:名字]運行安裝任務時。

回答

相關問題