Code von einem Server auf einen anderen Server übertragen

Code von einem Server auf einen anderen Server übertragen

Ich wollte neuen Code auf meinen neuen Produktionsserver übertragen.

Ich habe Codedateien auf meinem Entwicklungsserver.

Anstatt Dateien per FTP von meinem lokalen Computer hochzuladen, gibt es eine andere Möglichkeit, Code von einem Server auf einen anderen zu übertragen.

Ich denke, ich werde eine Zip-Datei mit dem gesamten Code erstellen, um ihn zu übertragen und ihn im Webroot abzulegen. So dass er über einen Link im Internet zugänglich isthttp://www.mydomain.com/code.tar.gz jetzt werde ich auf dem anderen Server einfach den Befehl ausführen

wget http://www.mydomain.com/code.tar.gz 

Ist diese Übertragung in wenigen Sekunden erledigt...? Darf ich fragen, ob das die richtige Vorgehensweise ist?

Antwort1

Zunächst einmal ist zu beachten, dass FTP keine gute Idee ist. Sie sollten auf jeden Fall SCP verwenden.

Als nächstes sollten Sie die Dateien mit den richtigen Berechtigungen erstellen. Am einfachsten geht das als Root-Benutzer (dann können Sie die Dateien als beliebiger Benutzer erstellen). Aber Sie sollten Root-Zugriff per SCP/FTP wirklich nicht erlauben. Das bedeutet, dass Sie die Dateien auf den Server ziehen – und nicht pushen.

Ich empfehle, eine Version auf Ihrem Entwicklungssystem zu erstellen (damit Sie überprüfen können, ob die Bereitstellung korrekt ist) und das Image anschließend mit rsync auf den Server zu klonen.

Sie könnten scp verwenden, um ein Backup-Image zu übertragen – aber Sie müssen wahrscheinlich Root sein, um es richtig zu entpacken. Wenn jedoch Probleme auftreten, besteht die einzige Möglichkeit, die Sie haben, darin, den gesamten Vorgang noch einmal zu wiederholen – rsync kopiert nur die Dateien, die sich geändert haben.

Antwort2

Am besten verwenden Sie zum Exportieren aus Ihrem CVS/SVN/GIT/was auch immer ANT oder ein Build-Skript mit einem bestimmten Tag, sodass Sie beim nächsten Upgrade des Codes, falls etwas schief geht, immer zur ursprünglichen Codebasis zurückkehren können.

Andernfalls verwenden Sie rsync aus einer sauberen Entwicklungsumgebung. Stellen Sie sicher, dass der Code demselben Benutzer gehört und unter diesem ausgeführt wird. Gehen Sie dann wie folgt vor:

ssh devserver cd /Pfad/zum/Web-Root rsync -e ssh -avzP * prodserver:/Pfad/zum/Web-Root/

Antwort3

Wenn Sie SSH-Zugriff haben, verwenden Sie RSYNC oder SCP als erste und saubere Bereitstellung auf Ihrem neuen Produktionsserver. Sehen Sie sich das hier an:Verwenden von Rsync und SSH

Wie Glen sagte, besteht der beste Bereitstellungsplan darin, ANT zu verwenden oder ein eigenes Skript zum Exportieren Ihres Codes zu erstellen. Wenn während der Bereitstellung Probleme auftreten, können Sie ein Rollback durchführen.

verwandte Informationen