我已經從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等進行動態加載,但也許有些東西我錯過了。
有什麼想法?