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 vonvagrant 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--provision
Option hinzufügen, dies ist jedoch nicht erforderlich. Um einen Kochlauf zu starten, rufen Sie einfach anvagrant 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
/up
geholfen 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 run
Befehl 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.