首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >创建基于角色执行不同任务的Capistrano任务

创建基于角色执行不同任务的Capistrano任务
EN

Stack Overflow用户
提问于 2009-04-15 22:34:52
回答 6查看 14.5K关注 0票数 17

我正在寻找一种方法来调用单个Capistrano任务来对不同的角色执行不同的事情。Capistrano是否能够做到这一点,或者我是否需要为每个角色编写特定的任务?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-15 23:31:55

在Capistrano中执行此操作的标准方法是:

代码语言:javascript
复制
task :whatever, :roles => [:x, :y, :z] do
  x_tasks
  y_tasks
  z_tasks
end

task :x_tasks, :roles => :x do
  #...
end

task :y_tasks, :roles => :y do
  #...
end

task :z_tasks, :roles => :z do
  #...
end

因此,是的,您确实需要编写单独的任务,但您可以从父任务中调用它们,它们将进行适当的过滤。

票数 17
EN

Stack Overflow用户

发布于 2011-06-20 08:11:47

实际上不是:

代码语言:javascript
复制
% cat capfile 
server 'localhost', :role2
task :task1, :roles=>:role1 do
  puts 'task1'
end
task :task2 do
  task1
end

% cap task2  
  * executing `task2'
  * executing `task1'
task1

roles参数被进一步传递以运行命令等,但似乎并不影响任务是否被实际触发。

对不起,找不到在评论上发表评论的方法,所以我在这里写了它。

票数 5
EN

Stack Overflow用户

发布于 2012-04-18 21:01:49

你也可以这样做

代码语言:javascript
复制
task :foo do
    run "command", :roles => :some_role
    upload "source", "destination", :roles => :another_role
end
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/754015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档