Soll ich jedes Mal, wenn ich eine meiner Quelldateien ändern möchte, vagrant destroy / up / reload / oder etwas anderes verwenden?

3990
michaelsnowden

Ich habe vor kurzem angefangen, ein wenig mit Vagabund und Django in einer vm zu entwickeln.

Um meine Maschine hochzufahren, benutze ich sie vagrant up, und um sie zu zerstören, benutze ich sie vagrant down.

Beide Befehle sind sehr zeitaufwändig, aber ich muss oft meinen Quellcode auf der Django-Seite ändern, wie zum Beispiel meine views.py-Datei muss möglicherweise etwas hinzugefügt werden.

Ich habe zwar SSH in der VM durchgeschaltet vagrant ssh, ich rufe an runund der Server ist eingerichtet, aber wenn ich eine Quelldatei ändere und einfach die Webseite neu lade, ist das in Ordnung? Oder sollte ich die SSH beenden und meine vm erneut bereitstellen oder neu laden?

3

2 Antworten auf die Frage

3
StephenKing

Ich denke, Sie haben ein Missverständnis und die richtige Antwort (von außen) hängt von Ihrem genauen Setup ab.

  • Das Zerstören einer Box (VM) wird durch ausgelöst vagrant destroy. Dies wirft alle Daten weg. In Ihrem Fall fahren Sie die VM herunter (mithilfe von vagrant down).
  • Wenn Sie diesen Beitrag mit Chef markiert haben, scheint es, dass Ihr Server durch Chef bereitgestellt wird und auch der gesamte Stack, auf dem Django ausgeführt wird, oder?
  • Wenn Ihre Kochrezepte richtig geschrieben wurden (oder: mit der Absicht, Ihre Anwendung zu aktualisieren), wird beim Ausführen einer Bereitstellung der Code in der VM aktualisiert. In älteren Vagrant-Versionen (IIRC <1.3) erfolgt die Bereitstellung um vagrant reload. In neueren Versionen müssten Sie die --provisionOption hinzufügen, dies ist jedoch nicht erforderlich. Um einen Kochlauf zu starten, rufen Sie einfach an vagrant provision. Dies ist nur der Anfang eines Chefs, ohne die gesamte Schachtel nachzuladen (dh, wenn die Rezepte Ihres Chefs richtig sind, wird dies überhaupt nicht benötigt).
  • Der häufig verwendete Satz "Wenn Ihre Kochrezepte korrekt sind" bedeutet, dass die Rezepte natürlich das Notwendige tun sollten, um die Codeänderungen nicht nur in die Box zu übernehmen, sondern auch, um die notwendigen Maßnahmen zu ergreifen, um sie zu aktivieren (Cache-Speicher löschen), Neustarten von Diensten usw.). Aber das hängt viel davon ab ... würde ich auf Django sagen. Wenn solche Dinge fehlen, könnte Ihnen das down/ upgeholfen haben, nur weil es zB Apache gestoppt und gestartet hat (nach dem Neustart).
  • Sie müssen nur sicherstellen, dass das gleiche, was Sie jetzt per SSH per Hand ausführen, auch vom Chef-Rezept ausgelöst wird.

Ich bin mir nicht sicher, woher der runBefehl kommt. Ich konnte nichts im Zusammenhang mit Django finden.

Ohne weiteren Code ist es daher schwierig, detaillierte Hinweise zu geben.

Das Bereitstellen von Code in der VM und das erneute Laden von Dingen ist jedoch eine Art Anwendungsfall für Vagrant.

Sehen Sie meine aktualisierte Antwort für eine kleine Klarstellung. michaelsnowden vor 10 Jahren 0
0
michaelsnowden

Nun, nach einem unglaublich einfachen Test habe ich festgestellt, dass ich einfach den Quellcode meiner Django-Dateien bearbeiten, die Datei speichern und die Webseite aktualisieren kann, um mein Ergebnis zu sehen.

Ich meine damit "nur die Webseite aktualisieren": Browser vor dem Aktualisieren

Und nachdem ich die Browserseite bearbeitet, gespeichert und aktualisiert habe: Browser nach der Aktualisierung

Was ich unter "Laufen" verstehe, könnte etwas Besonderes in meinen Kochbüchern sein (ich denke, deshalb haben sowohl StephenKing als auch ich nichts darüber gefunden). So sah mein Terminal dabei aus: Mein Terminal

Hoffe das klärt meine Antwort.

Aber "ja" als Antwort auf welche Ihrer Fragen? StephenKing vor 10 Jahren 2
Die Antwort bedarf sicherlich einer Klarstellung. pabouk vor 10 Jahren 0
Okay, danke für die Klarstellung. StephenKing vor 10 Jahren 0
... Kann ich dann nicht bewertet werden? michaelsnowden vor 10 Jahren 1