根据 capistrano 任务中的角色执行命令

Executing commands based on the role inside a task in capistrano

我有一个伪如下

task :my_task, roles => [:role1, :role2] do
    command 1
    command 2
    command 3
    command 4
end

我想运行命令1和命令2,仅适用于角色1,命令3和命令4,适用于角色2。这在 Capistrano 中可能吗?

我试过了,

task :my_task, roles => [:role1, :role2] do
    on roles(:role1) do
        command 1
        command 2
    end

    on roles(:role2) do
        command 3
        command 4
    end
end

但似乎对我不起作用..请帮忙:)

顺便说一句,我正在使用 Capistrano v2.15.5

提前致谢

这可能不是解决问题的好方法..但这是我所能做的并且对我有用。

task :my_task do
    task_1
    task_2
end
task :task_1, :roles => [:role1] do
    command 1
    command 2
end
task :task_2, :roles => [:role2] do
    command 3
    command 4
end