Ich suche nach etwas, das Dateien (vorzugsweise nur geändert) von einer Entwicklungsmaschine auf eine Staging-Maschine und schließlich auf eine Reihe von Produktionsmaschinen kopieren kann.
Ein "was wäre wenn" -Modus wäre schön, genauso wie die Möglichkeit, die letzte Bereitstellung "rückgängig zu machen". Datenbankmigrationen sind kein notwendiges Feature.
UPDATE: Ein kostenloses / kostengünstiges Tool wäre großartig, aber die Kosten sind nicht das einzige Problem. Ein Tool, das tatsächlich die Bereitstellung von einer Umgebung zur nächsten verwalten kann (Entwicklungs- & Gt; -Produktion statt von einer Entwicklungsmaschine zu jeder Umgebung), wäre ebenfalls ideal.
Der andere große Vorteil ist, dass nur geänderte Dateien kopiert werden können - einige unserer älteren Websites enthalten hunderte von ASP-Dateien.
@Sean Carpenter Können Sie uns etwas mehr über Ihre Umgebung erzählen? Sollte die Lösung frei sein? einfach?
Ich finde Robocopy für diese Art von Ding ziemlich glatt. Wickeln Sie in einer Batch-Datei und Sie sind gut zu gehen. Es ist eine verherrlichte xcopy, aber die Bereitstellung meiner Website ist nicht wirklich schwierig. Einfach die Dateien kopieren.
Soweit Rollbacks ... Sie verwenden Quellcodeverwaltung richtig? Zieh einfach die alte Quelle raus. Oder kopieren Sie die Bereitstellung in Ihrer Stapeldatei AUCH in einen anderen Ordner mit der Bezeichnung Website yyyy.mm.dd, damit Sie im Notfall einen schönen Ordner bereit haben.
Sehen Sie sich den Befehl for an, um zu erfahren, wie Sie die Teile des Datums erhalten.
%Vor%Ja, es ist ein totaler "Hack", aber es bewegt die Dateien schön.
In einigen Szenarien habe ich ein Freeware Produkt namens SyncBack () verwendet Hier herunterladen ).
Es bietet eine komplexe, mehrstufige Dateisynchronisierung (Dateisystem oder FTP usw., Komprimierung usw.). Das Programm hat eine nette grafische Benutzeroberfläche. Sie können Profile definieren und zusammen gruppieren / ausführen.
Sie können Filter für Dateitypen, Namen usw. festlegen und Befehle / Programme nach der Jobausführung ausführen. Es gibt auch ein Job-Protokoll, das als HTML-Bericht zur Verfügung gestellt wird. Es kann als E-Mail an Sie gesendet werden, wenn Sie den Job planen.
Es gibt auch eine professionelle Version der Software, aber für allgemeine Aufgaben sollte die Freeware gut funktionieren.
Sie geben nicht an, ob Sie Visual Studio .NET verwenden, aber in Visual Studio 2005 und 2008 gibt es einige integrierte Tools:
Kopieren Sie Website-Tool - im Grunde ein visuelles Synchronisierungstool, es hebt Dateien hervor und lässt Sie von einem zum anderen kopieren. Manuell, in Visual Studio integriert.
aspnet_compiler.exe - ermöglicht das Vorkompilieren von Websites.
Natürlich können Sie auch ein Web-Bereitstellungspaket erstellen und als MSI bereitstellen.
Ich habe eine Kombination aus Cruise Control.NET, nant und MSBuild verwendet, um Konfigurationsdateien für bestimmte Umgebungen zu kompilieren und auszutauschen und die Dateien in ein Build-Ausgabeverzeichnis zu kopieren. Dann hatten wir ein weiteres Skript, um die Datei zu kopieren (und ggf. Datenbankskripte auszuführen).
Bei einem Rollback würden wir alle vorherigen Bereitstellungen speichern, sodass das Zurückrollen theoretisch dazu führte, dass der letzte funktionierende Build erneut bereitgestellt und die Datenbank wiederhergestellt wurde.
Wir verwendeten UnleashIt (unglücklicher Name, den ich kenne), der schön anpassbar war und Ihnen erlaubte, Profile für die Bereitstellung auf verschiedenen Servern zu speichern . Es hat auch eine "Backup" -Funktion, die Ihre Produktionsdateien vor der Bereitstellung sichert, so dass Rollback ziemlich einfach sein sollte.
Ich habe es aufgegeben, ein gutes kostenloses Produkt zu finden, das funktioniert. Ich fand dann Microsofts Sync Toy 2.0, das, obwohl es an Optionen mangelt, gut funktioniert.
ABER ich muss auf einem Remote-Server bereitstellen.
Da ich eine Verbindung mit Terminaldiensten herstelle, merkte ich, dass ich meine lokale Festplatte auswählen kann, wenn ich mich verbinde und dann im Explorer auf dem entfernten Server kann ich \tsclient\S\MyWebsite
auf dem entfernten Server öffnen.
Ich benutze dann Synctoy mit diesem Pfad und synchronisiere es mit meinem Server. Scheint bis jetzt ziemlich gut und schnell zu funktionieren ...
Vielleicht rsync plus einige benutzerdefinierte Skripte werden den Trick tun.
Versuchen Sie repliweb. Es behandelt den vollständigen Rollback zu früheren Versionen von Dateien. Ich habe es benutzt, während ich für einen Klienten gearbeitet habe, der seinen Gebrauch gefordert hat und ich bin ein großer Fan davon geworden, besonders:
Tags und Links iis deployment