【发布时间】:2025-11-28 22:20:03
【问题描述】:
我正在使用普通 capistrano 部署一个用 node 编写的简单集群。
我定义的角色如下:
role :boss, "bosshost"
role :worker, { get_worker_hosts }
我正在使用 capistrano 的默认部署舞蹈 + 自己的任务将 worker 应用程序放在服务器上。
问题是我不想为boss 提供任何这些,因为它只是一个脚本。理想情况下这样做:
namespace :boss
task :update, :roles => [:boss]
upload 'boss.js', "#{boss_home}/boss.js"
end
task :restart, :roles => [:boss]
run "forever restart #{boss_home}/boss.js"
end
end
我在deploy:finalize_update 之后发生的所有与工人相关的任务中都使用了:roles => [:worker]。但是,运行$ cap deploy 仍会将不必要的内容放在boss 服务器上。
我如何告诉 capistrano deploy 任务和以下默认任务应该只为具有 worker 角色的服务器运行?
【问题讨论】:
-
我也一直在网上搜索,试图弄清楚这一点。
标签: ruby deployment capistrano