我已经从Capistrano 2切换到Capistrano 3最近,很多改变了,我有一些麻烦试图改变Capistrano 2在项目中使用Capistrano 2的新Capistrano我正在尝试。Capistrano 3角色特定的任务
我目前面临的最大问题是按角色过滤。我知道你可以这样做:
ROLES=web,worker cap production deploy
,但如果你有所有角色的单个服务器,似乎什么也不做,真的。
随着Capistrano的2我可以运行:
cap worker deploy
和所有工作任务将被应用。 Capistrano 2具有在任务中指定的角色,并且如果角色未被请求,则任务被跳过(在大多数情况下)。然而,对Capistrano 3来说似乎并不是这样,在多服务器环境中,每个角色都有特定的服务器时,过滤器非常棒。但是,如果服务器共享一个角色或者只有一个角色,它会变得有点奇怪。在新的Capistrano任务中,似乎要检查是否存在具有给定角色的主机,而不是根据角色检查任务是否应运行。在我看来,ROLES旨在限制服务器而不是任务。
所以我想知道这是否可能在Capistrano 3中。另一种查看方法是将名称下的任务分组。我想选择正在执行哪组任务。
我可以通过一些修补来达到这个目的,我可以检查ROLES是否存在,并根据它来跳过任务,我可以根据角色选择要加载的配方,我可以根据ROLES动态附加任务var,或者可能将任务分组到角色命名文件中,然后根据ROLES等进行动态加载,但也许有些东西我错过了。
有什么想法?