Ich habe vor kurzem von Capistrano 2 auf Capistrano 3 gewechselt, viel hat sich geändert, und ich habe einige Probleme damit, das neue Capistrano an das anzupassen, was es mit Capistrano 2 im Projekt gemacht hat Ich arbeite an.Capistrano 3 Rollenspezifische Aufgaben
Das größte Problem, dem ich im Moment gegenüberstehe, ist das Filtern nach Rollen. Ich weiß, was Sie tun können:
ROLES=web,worker cap production deploy
aber wenn Sie einen einzelnen Server mit allen Rollen haben, das scheint wirklich nichts zu tun.
Mit Capistrano 2 Ich konnte laufen:
cap worker deploy
und alle Arbeitsaufgaben angewendet werden würde. In Capistrano 2 wurden die Rollen für die Aufgaben angegeben, und wenn die Rolle nicht angefordert wurde, wurden die Aufgaben (in den meisten Fällen) übersprungen. Bei Capistrano 3 scheint dies jedoch nicht der Fall zu sein. Der Filter eignet sich hervorragend für eine Multi-Server-Umgebung, in der Sie spezifische Server für jede Rolle haben. Aber wenn Server eine Rolle teilen oder wenn es eine einzige gibt, wird es ein bisschen komisch. In den neuen Capistrano-Aufgaben scheint zu prüfen, ob ein Host mit einer bestimmten Rolle vorhanden ist, anstatt zu prüfen, ob die Aufgabe basierend auf der Rolle ausgeführt werden soll oder nicht. Es scheint mir, dass ROLES eher die Server als die Aufgaben begrenzen soll.
Also ich frage mich, ob dies in Capistrano 3 möglich ist. Eine andere Möglichkeit, dies anzuzeigen, ist die Gruppierung von Aufgaben unter einem Namen. Ich möchte auswählen, welche Gruppe von Aufgaben ausgeführt werden.
Ich kann dies mit etwas Basteln erreichen, ich könnte prüfen, ob ROLES vorhanden ist und eine Aufgabe überspringen oder nicht basierend darauf, ich könnte auswählen, welche Rezepte je nach Rolle geladen werden, konnte ich die Aufgaben auf der ROLES dynamisch anhängen var, oder gruppieren Sie die Aufgaben in der Rolle benannte Dateien und machen Sie das dynamische Laden abhängig von ROLES, etc., aber vielleicht gibt es etwas, das ich vermisse.
Irgendwelche Gedanken?