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 [:名字]运行安装任务时。