Capistrano 3:参数化角色

Capistrano 3:参数化角色,capistrano,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@server

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

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使用命令行参数或环境变量

谢谢

自己解决

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