5 Stimmen

Gute Praktiken für Capistrano-Konfigurationsmanagement?

Ich bin neu bei Capistrano und frage mich, wie ich die Capistrano-Konfiguration für mein Projekt am besten verwalten kann.

Insbesondere wo soll config/deploy.rb in Bezug auf die Versionskontrolle meines Projekts liegen? Sollte ich eine Vorlage der Datei ohne spezifische Konfigurationsinformationen speichern? Oder sollte diese Konfiguration in einem eigenen Repository liegen, das vom Team geteilt wird?

2voto

conny Punkte 9727

Als ich anfing, Capistrano immer mehr zu verwenden, habe ich mich auch darüber gewundert. Ich denke, die meisten von uns sind sich einig, dass es Sinn macht, _Laufzeitkonfigurations_informationen getrennt von funktionalen Codes zu verfolgen, oder? Sollte das also nicht auch für Bereitstellungskonfigurationen gelten?

Ich denke, du könntest deinen ./deploy/-Ordner zu einem SCM-Teilprojekt machen. Du könntest eine Rake-Aufgabe erstellen, die die Capfile in dein Arbeitskopie generiert, so dass du eventuelle Passwörter und ähnliches außerhalb der App behältst... Es könnte sogar eine entsprechende Gem dafür geben.

Allerdings habe ich mich für einen alternativen Ansatz entschieden:

Ich habe ungefähr zehn verschiedene Anwendungen, bei denen der Großteil der Capistrano-Variablen einem Muster wie set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"} folgen könnte, ebenso wie für die Pfade zum Quellcode-Repository.

Ich habe alle Kenntnisse über Bereitstellung aus den einzelnen Anwendungen herausgenommen und stattdessen in einem separaten, gemeinsamen "Bereitstellungsprojekt" platziert. Jetzt kann ich dieses Projekt auschecken und folgendes ausführen:

cap [eine Anwendung] [Umgebung] [Bereitstellungsaufgabe]

Ich bevorzuge dieses Muster / diese Trennung der Verantwortlichkeiten viel mehr als das Verstreuen von Capfiles überall hin.

1voto

moritz Punkte 24717

Das ist eine sehr gute Frage.

Letztendlich habe ich auch alle mit deploy.rb zusammenhängenden Dinge in ein Bereitstellungsprojekt gesteckt und von dort aus mit Symlinks zu den Anwendungsprojekten verbunden. Zum damaligen Zeitpunkt habe ich mir Webistrano angesehen, weil es den Anschein hatte, dass man damit einen eigenen Pool von Rezepten pflegen kann. Da das Projekt anscheinend nicht mehr gepflegt wird, habe ich mich für den oben genannten Ansatz entschieden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X