3

Я недавно начал немного развиваться с vagrant и django в виртуальной машине.

Чтобы поднять мою машину, я использую vagrant up , а чтобы уничтожить ее, я использую vagrant down .

Обе эти команды чертовски трудоемки, но мне часто приходится менять свой исходный код на стороне django, как, например, мой файл views.py, возможно, должен что-то добавить к нему.

В то время как у меня есть SSH'd в VM через vagrant ssh , я вызываю run и сервер устанавливается, но если я изменяю исходный файл и просто перезагружаю веб-страницу, это нормально? Или я должен выйти из SSH и повторно предоставить или перезагрузить мой виртуальный компьютер?

2 ответа2

3

Я думаю, что у вас есть некоторое недопонимание, и правильный ответ (со стороны) зависит от ваших точных настроек.

  • Процесс уничтожения ящика (ВМ) запускается через vagrant destroy . Это выбрасывает все данные. В вашем случае вы выключаете виртуальную машину (используя vagrant down).
  • Когда вы отметили этот пост с помощью chef, кажется, что ваш сервер подготовлен через Chef, а также весь стек для запуска на нем Django, не так ли?
  • Если ваши рецепты шеф-повара написаны правильно (или: с целью обновления вашего приложения), запуск инициализации обновит ваш код в виртуальной машине. В более старых версиях Vagrant (IIRC <1.3) подготовка выполняется при vagrant reload Vagrant. В более новых версиях вам придется добавить опцию --provision , однако это даже не требуется. Чтобы запустить шеф-повар, просто вызовите vagrant provision . Это просто запускает шеф-повара, не перезагружая всю коробку (то есть, если ваши рецепты шеф-повара верны, не нужны вообще).
  • Часто используемая фраза «если ваши рецепты шеф-повара верны» означает, что рецепты должны, конечно, делать то, что необходимо, чтобы не только внести изменения кода в поле, но и сделать необходимые действия, чтобы сделать их активными (очистка кешей) , перезапуск сервисов и т. д.). Но это зависит от многих .. Я бы сказал на Джанго. Если такие вещи отсутствуют, возможно, вам помогли down/up только потому, что он, например, остановил и запустил Apache (после перезагрузки).
  • Вам просто нужно убедиться, что то же самое, что вы сейчас запускаете вручную через SSH, также запускается рецептом шеф-повара.

Я не уверен, откуда исходит команда run . Я не мог найти ничего, связанного с Джанго.

Без дальнейшего кода, таким образом, трудно дать вам подробные советы.

Но предоставление вашего кода в виртуальную машину и перезагрузка - это своего рода вариант использования Vagrant.

0

Что ж, после невероятно простого теста я обнаружил, что могу просто отредактировать исходный код любого из моих файлов Django, сохранить файл и обновить веб-страницу, чтобы увидеть мой результат.

Вот что я имею в виду под «просто обновить веб-страницу»: браузер перед обновлением

И после того, как я отредактирую, сохраню, обновлю страницу браузера: браузер после обновления

То, что я имею в виду под "бегом", может быть чем-то конкретным в моих кулинарных книгах (я думаю, именно поэтому и СтивенКинг, и я ничего не могли найти по этому поводу). Вот как мой терминал выглядел во время этого: Мой терминал

Надеюсь, что проясняет мой ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .