Frage

So, in Ihrer Erfahrung, was ist der beste Weg?Gibt es einen sicheren Weg, das ist auch skriptfähig/triggerable in ein build-automation-tool?

Edit:Ich sollte erwähnen, das ist der windows/.net, und ich werde Bereitstellung auf iis6

War es hilfreich?

Lösung

Für einige Projekte, die ich verwenden Capistrano push-out zu Leben.Es basiert auf ruby und macht deploy-Skript schreiben, das super einfach und verwendet ssh.

Bei anderen Projekten habe ich einen winzigen bereitstellen-app, die mithilfe der bash zu tun, einen svn-export in ein temporäres Verzeichnis und dann rsync auf die live-server.Sie können rsync ssh verwenden.

Ich stark bevorzugen, die Capistrano-Methode, auch wenn Ihr Projekt ist nicht in ruby/rails.

Andere Tipps

Dies scheint die Art von Dingen, die getan werden könnte, einfach mit SFTP.Werfen Sie einen Blick auf PuTTY (psftp und pscp) oder WinSCP für Windows -, oder rsync und OpenSSH für UNIX-Versionen.

@Neall, ich würde hinzufügen eine set -e auf der zweiten Linie, weil Sie nicht wollen, die live-site ersetzt werden, wenn die rsync aus irgendeinem Grund fehlschlägt. set -e bewirkt, dass das Skript zu beenden, wenn einer seiner Befehle fehlschlägt.

Edit:Die set -e sollte das erste, was in der Skript, direkt nach #!/bin/bash.

Machen Sie eine Kopie Ihrer live-site-Verzeichnis verwenden rsync aktualisieren Sie die Kopie mit Ihrer neuesten version, dann benennen Sie die live aktualisiert und Verzeichnisse, so dass die aktualisierte version ist jetzt live.

In der bash:

#!/bin/bash

set -e
cp -R /var/livesite /var/newversion
rsync user@devserver:/var/readytogolive /var/newversion
mv /var/livesite /var/oldlivesite
mv /var/newversion /var/livesite

Viola!

Edit:@Ted Percival - Das ist eine gute Idee.Ich kannte nicht einmal "set-e".Aktualisiert Skript.Edit:aktualisiert wieder bei Ted ' s Vorschlag (obwohl ich denke, es würde immer noch funktionieren, wenn irgendwie der cp-Befehl ist fehlgeschlagen, und wenn cp fehlschlägt, haben Sie wahrscheinlich mehr ernsthafte Probleme.)

Ich werde die Empfehlung für die zweite Capistrano, obwohl, wenn Sie suchen für eine GUI-basierte Lösung, die Sie könnten versuchen, die Webistrano front-end.Sauber, ssh-basierte, sane Bereitstellungs-und rollback-Semantik und einfach scripting und Erweiterbarkeit über ruby.

Man konnte immer zu schreiben, ein kleines client/server-Anwendung, die verschlüsselt an die Quelle, schiebt die Dateien, und dann entschlüsselt am Ziel.Das ist ein wenig Arbeit, aber wahrscheinlich eine triviale Menge.Und es ist skriptfähig, solange Ihre automation tool unterstützt das ausführen etwas in die Datei system (was ich denke, alle tun).

Der einzige Nachteil ist, dass Sie möglicherweise nicht in der Lage sein, um sinnvolle Fehlermeldungen, die auf Fehler in Ihrer Umgebung für die integration, ohne ein bisschen mehr Arbeit auf Ihrem Teil (aber je auf Ihre setup, könnte dies so einfach wie das senden von Fehlermeldungen auf stdout).

hm, um hier verwenden wir eine Inszenierung "server" für Testzwecke auf die live-Umgebung (eigentlich ein apache virtual host auf dem Produktions-server) und araxis merge (eine wirklich smart line-by-line-Datei-Vergleich-tool), um sync die Entwicklung und Inszenierung.

sobald Ihr getestet, nur;ersetzen Sie die Dateien auf die Produktion von webroot :)

/mp

Auf einem freelance-job, den ich habe, haben wir drei separate Umgebungen.

  • Einen Dev-server, der lief weiter baut mit CruiseControl.Alle check-in auslösen würde, eine zu bauen.QA-Test wurde hier getan.
  • Ein Test-Server, die Benutzer-Akzeptanz-Tests gemacht worden.
  • Produktion.

Der Arbeitsablauf war wie folgt:

  1. Developer Prüfungen auch änderungen SourceControl.
  2. CruiseControl baut und setzt die build-Dev.
  3. Dev ist Qaid
  4. Nach bestandener QA, ein robocopy-Skript gestartet wird, setzt der Dev build zum Testen.
  5. Test UAT ' ed
  6. Nach der Test bestanden wird, ein robocopy-Skript gestartet wird, setzt Testen PRD.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top