Как я могу использовать командный файл для запуска команд Vagrant, но оставить меня подключенным к Vagrant после завершения? - PullRequest
0 голосов
/ 24 августа 2018

Вот что у меня есть в пакетном файле:

set root="C:\Users\esohlberg\lwebsite"
cd %root%
vagrant up
vagrant ssh -- -t "source lw/bin/activate && cd /vagrant/; ./manage.py runserver 0.0.0.0:8000"
cmd /k

Когда Vagrant активен, я активирую virtualenv, перехожу в нужное место и запускаю сервер. Выполнение этого приводит меня к работающему серверу, где я вижу

System check identified no issues (0 silenced).
August 24, 2018 - 12:33:12
Django version 2.0.3, using settings 'lwebsite.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Однако, как только я ухожу с CONTROL-C, я вижу

Connection to 127.0.0.1 closed.

и я больше не в Вагранте. Можно ли настроить команды таким образом, чтобы после завершения работы сервера я оставался в каталоге / vagrant / с подключением, а Vagrant virtualenv оставался активным? Это позволило бы мне управлять сайтом или снова запустить сервер с меньшими хлопотами.

Я уже посмотрел на https://www.vagrantup.com/docs/provisioning/shell.html,, но в примерах, похоже, показаны команды, выполняемые только во время инициализации, что я не хочу делать каждый раз, когда выполняю этот файл.

1 Ответ

0 голосов
/ 28 августа 2018

Я уже посмотрел на https://www.vagrantup.com/docs/provisioning/shell.html,, но в примерах, похоже, показаны команды, выполняемые только во время инициализации, что я не хочу делать каждый раз, когда выполняю этот файл.

Вы искали правильное место, вам нужно запустить команду при запуске виртуальной машины, чтобы вы могли сделать следующее:

config.vm.provision "shell", :inline => "source lw/bin/activate && cd /vagrant/; ./manage.py runserver 0.0.0.0:8000", :run => 'always', :privileged => false

Это гарантирует, что каждый раз, когда вы звоните vagrant up с вашего хоста, он запускает ваш сервер Python (как бродячий пользователь)

Таким образом, вам больше не нужен скрипт, и вы можете просто запустить виртуальную машину, используя vagrant up

...