Devo usar o vagrant destroy / up / reload / provision ou algo do gênero toda vez que quiser alterar um dos meus arquivos de código-fonte?

3

Comecei recentemente a desenvolver um pouco com vagabundo e django em uma vm.

Para colocar minha máquina em funcionamento, uso vagrant up e, para destruí-la, uso vagrant down .

Ambos os comandos consomem muito tempo, mas muitas vezes eu preciso mudar meu código-fonte no lado do django, como, por exemplo, meu arquivo views.py pode precisar ter algo adicionado a ele. / p>

Enquanto eu tenho SSH no vm através de vagrant ssh , eu chamo run e o servidor é colocado, mas se eu mudar um arquivo de origem, e apenas recarregar a página, está tudo bem? Ou devo sair do ssh e provisionar novamente ou recarregar o meu vm?

    
por michaelsnowden 21.01.2014 / 08:09

2 respostas

3

Acho que você tem algum mal-entendido e a resposta correta (da visão externa) depende da sua configuração exata.

  • O processo de destruir uma caixa (VM) é acionado por vagrant destroy . Isso joga todos os dados de distância. No seu caso, você desliga a VM (usando vagrant down ).
  • Como você marcou esta postagem com o chefe , parece que seu servidor é provisionado por meio do Chef e também da pilha inteira para executar o Django nele, não é?
  • Se as receitas de seu chef forem escritas corretamente (ou: com a intenção de atualizar seu aplicativo), a execução de um provisionamento atualizará seu código na VM. Nas versões antigas do Vagrant (IIRC < 1.3), o provisionamento é feito em vagrant reload . Em versões mais recentes, você teria que adicionar a opção --provision , no entanto, isso nem é necessário. Para acionar uma corrida de chef, basta ligar para vagrant provision . Isso acaba com o chef sem recarregar a caixa inteira (ou seja, se as receitas do chef estiverem corretas, não são necessárias).
  • A frase usada com frequência "se as receitas do seu chef estiverem corretas" significa que as receitas devem, obviamente, fazer o que for necessário para não apenas trazer as alterações de código para a caixa, mas também fazer as coisas necessárias para ativá-las (liberando caches, reiniciando serviços, etc.). Mas isso depende muito ... eu diria no Django. Se isso estiver faltando, o down / up pode ter ajudado você porque, por exemplo, parou e iniciou o Apache (após a reinicialização).
  • Você só precisa ter certeza de que a mesma coisa que agora executa manualmente via SSH também é acionada pela receita do Chef.

Não tenho certeza de onde o comando run está vindo. Não encontrei nada relacionado ao Django.

Sem mais código, é difícil fornecer dicas detalhadas.

Mas provisionar seu código na VM e recarregar as coisas é exatamente um caso de uso para o Vagrant.

    
por 21.01.2014 / 08:51
0

Bem, depois de um teste incrivelmente fácil, descobri que posso apenas editar o código-fonte de qualquer um dos meus arquivos do Django, salvar o arquivo e atualizar a página para ver o resultado.

É isso que quero dizer com "apenas atualizar a página da Web":

Depoisdeeditar,salve,atualizeapáginadonavegador:

Oquequerodizercom"executar" pode ser algo específico para meus livros de culinária (acho que é por isso que ambos StephenKing e eu não consegui encontrar nada sobre isso). Aqui está o que meu terminal parecia ao longo do curso:

Espero que isso esclareça a minha resposta.

    
por 21.01.2014 / 08:13