Capistrano 3:参数化角色

时间:2014-06-10 15:57:42

标签: capistrano

我正在创建一个简单的部署脚本,该脚本将在角色中定义的不同服务器中执行某些任务:

set :branch, ENV["PROJECT_GIT_BRANCH"]
role :app_servers, %w{app@server1.example.com app@server2.example.com}
role :main_server, %w{app@server1.example.com}

我可以轻松地对“分支”进行参数化,但不能对角色进行参数化。或者我不明白该怎么做。

如何使用命令行参数或环境变量对“app@server1.example.com”等字符串进行参数化?

谢谢!

1 个答案:

答案 0 :(得分:0)

自己解决了;)

role :app_servers, ENV['app_servers'].split(',')
role :main_server, ENV['app_servers'].split(',')[0]

现在我可以做到:

cap production deploy branch=master app_servers=app@server1.example.com,app@server2.example.com