Ich habe immer nur Kappe Aufgaben erstellt für jedes deploy Ziel und verwenden sie in der Befehlszeile:
# deploy.rb
task :stage do
server 10.0.0.1 ...
end
> cap stage deploy
Sie können festlegen, auch Aufgaben innerhalb der einzelnen Zielaufgabe anpassen, wie ein deploy, die Bereinigung funktioniert in Inszenierung, aber nicht in der Produktion.
Da diese Deploy-Zielaufgaben selten sehr groß sind, habe ich nie wirklich den Sinn einer Installation der Cap-Erweiterungen für Multi-Stage gesehen, aber ich nehme an, die Situationen anderer können sich unterscheiden.
Ich denke, dass die Produktion von Ihren anderen Umgebungen getrennt sein sollte, da sonst die Gefahr besteht, dass sich fehlerhafte Prozesse im Staging oder dergleichen auf die Produktionsleistung auswirken.
Manchmal definiere ich Cap-Tasks, um das Staging einfacher zu gestalten, z. B. um die Datenbank auszulöschen und sie vom letzten Produktions-Dump neu zu laden. Diese Aufgaben sollten ihr Bereitstellungsziel über eine festgelegte Variable oder Ähnliches überprüfen und sich weigern, für die Produktion als Versicherung gegen einen Spätnachtypo zu laufen.
Es ist verlockend, eine Menge benutzerdefiniertes Verhalten in Ihre deploy.rb zu bringen, aber ich habe festgestellt, dass dies dazu führt, dass sich Ihre Umgebung oder die Cap-APIs ändern.
Eine weitere Übung, die ich bei größeren Umgebungen gesehen habe, ist ein Shell-Konto mit einem Checkout, das den stabilen Zweig verfolgt, der speziell als Kontrollpunkt für Capistrano eingerichtet wurde. Sie ssh in und führen Sie cap-Befehle statt lokal aus. Dies kann helfen, Probleme zu vermeiden, bei denen die deploy.rb Ihrer lokalen Kasse Änderungen aufweist, die Sie nicht für die Bereitstellung in der Produktion verwenden können. Dies ist weniger ein Problem mit git vs svn, aber dennoch muss man sorgfältig überlegen, was ihre lokale deploy.rb in dem Moment ist, in dem sie cap-Befehle ausführen.
Heroku macht dieses Zeug heutzutage wirklich einfach, und EY und andere sind nicht gerade weit entfernt.
Entschuldigung, ich musste die zwei Hyperlinks zu diesen Blogposts entfernen, um die Frage zu stellen. Jeder, der mehr darüber erfahren möchte, kann diese Elemente direkt zu den Posts leiten. – trisignia
Warum mussten Sie die Hyperlinks entfernen? –
Ich bin ein neuer Benutzer hier, und StackOverflow lässt mich noch keine Hyperlinks in meinen Fragen veröffentlichen. – trisignia