2009-04-03 7 views
0

Ich verwende eine Entwicklung, Staging, Produktion Serverumgebung mit einigen anderen Entwicklern.Auf der Suche nach einem sicheren SVN Remote-Update Post-Commit-Hook

Im Moment machen wir Änderungen, testen sie auf unserem Dev-Server (PC) und sobald wir mit den Änderungen zufrieden sind und sie dem Client oder der internen Überprüfung zeigen wollen, übernehmen wir die Änderungen im Repository und aktualisieren den Staging-Server Arbeitskopie über Samba (TortoiseSVN) oder ssh.

Dies wird wirklich langweilig und repetitiv. Ich bin auf der Suche nach einem post-commit-Hook Update der Remote-Staging-Server, aber die einzigen Optionen scheinen harte Codierung eines Benutzers Kredit in den Haken für SSH oder Erstellen eines Netzwerk-Mount mit einem Benutzerkonto. Gibt es eine Möglichkeit, die Benutzerauthentifizierung von der anfänglichen Festschreibung an den Staging-Server zu übergeben, um sie zu aktualisieren oder andere Vorschläge?

Andere Einrichtungslösungen sind willkommen.

Antwort

3

Wenn Sie sich Sorgen machen, SSH-Benutzeranmeldeinformationen fest in Ihr Skript zu schreiben, können Sie ein SSH-Schlüsselpaar ohne Kennwort erstellen. Auf der Zielmaschine, möchten Sie, dass die Schlüsselpaar beschränken nur durch Zugabe von

command="/path/to/svnserve -t" 

auf der Vorderseite der SSH autorisierte Schlüsseldatei, wie Subversion laufen:

command="/usr/bin/svnserve -t" ssh-dss <key text> 

Ändern Sie bitte Ihre Hook-Skript zu verwenden Dieser Schlüssel für die Anmeldung, und Sie werden (ein wenig) mehr Sicherheit als ein traditioneller No-Passwort-SSH-Schlüssel haben.

1

Haben Sie in Betracht gezogen, ein automatisiertes System wie CruiseControl (http://cruisecontrol.sourceforge.net/) auf Ihrem Staging-Server zu verwenden?

CruiseControl kann konfiguriert werden, um zu prüfen, ob neue Checkins vorhanden sind, und dann einen Build zu starten (der normalerweise einen Checkout als ersten Schritt ausführt).

Sie können sogar verschiedene Filialen überwachen und automatisierte Integration tun und Release-Builds je nachdem, welche Änderungen auf dem Zweig bekam eingecheckt.

Wir verwenden dieses Idiom sehr erfolgreich hier für unseren automatisierten Builds.

+0

Danke für den Vorschlag, den ich im Hinterkopf behalten werde. Es kann ein bisschen viel sein, weil keine Build/Test Teile zu unserem Prozess und ich hoffte, ein Svn-Update zu machen, so dass weniger Dateien über die Server übergeben werden müssen und die Leute den Staging-Server überprüfen würde mehr sofortige Ergebnisse nach unserem Commit – joelpittet