Como faço para que o Vagrant inicie o servidor na inicialização?

29

Quero que o Vagrant inicie o servidor Play na pasta / vagrant / toda vez que eu fizer isso. Colocar o @reboot no crontab não funciona porque o script é executado antes da conexão da pasta / vagrant /.

nome de usuário errado
fonte

Respostas:

16

Em vez de usar o crontab, você tentou usar o Upstart ?

O Vagrant emite um evento "vagrant-mounted" quando a pasta compartilhada é montada, para que você possa criar um arquivo conf inicial, por exemplo /etc/init/play.conf, para ser executado quando esse evento for emitido:

description "Play server"
start on vagrant-mounted

pre-start script
    [ "$MOUNTPOINT" == "/vagrant" ] || stop
end script

... rest of config file for starting Play server ...
billyw
fonte
Obrigado! Não sei por que recebi o erro /bin/sh: 1: [: =: unexpected operator, então apenas descomentei essa linha.
wrongusername 17/01/14
Opa! Editei a postagem para que a sintaxe estivesse correta.
billyw
start on vagrant-mounted MOUNTPOINT=/vagrantTambém pode funcionar?
precisa saber é o seguinte
Para o meu script inicial start on vagrant-mountednão funciona por algum motivo. Não sei por que e nem sei como depurá-lo.
Maectpo 4/16
44

Eu achei o uso de um provisionador vagabundo separado com a opção run : "always"muito mais fácil, por exemplo:

config.vm.provision :shell, path: "yourStartUp.sh", run: "always", privileged: false

Consulte https://docs.vagrantup.com/v2/provisioning/shell.html para obter o documento completo.

culmat
fonte
3
O link fornecido não diz nada sobre "always". Talvez isso tenha sido removido em uma versão mais recente.
Rafael Eyng
6
@RafaelEyng os documentos para isso estão em vagrantup.com/docs/provisioning/basic_usage.html , procure por "EXECUTAR UMA VEZ OU SEMPRE"
Daniel Compton
Retestado em 2017. Funciona como um encanto. Essa é a melhor resposta e ainda atualizada.
iaforek