Come posso ottenere Vagrant per avviare il server all'avvio?


29

Voglio che Vagrant avvii il server Play nella cartella / vagrant / ogni volta che lo faccio su Vagrant. Mettere @reboot sul crontab non funziona perché lo script viene eseguito prima che la cartella / vagrant / sia connessa.

Risposte:


16

Invece di usare crontab, hai provato a usare Upstart ?

Vagrant emette un evento "montato su vagrant" quando viene montata la cartella condivisa, quindi è possibile creare un file conf upstart, diciamo /etc/init/play.conf, da eseguire quando viene emesso quell'evento:

description "Play server"
start on vagrant-mounted

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

... rest of config file for starting Play server ...

Grazie! Non sono sicuro del motivo per cui ho ricevuto l'errore /bin/sh: 1: [: =: unexpected operator, quindi ho semplicemente decommentato quella riga.
wrongusername

Oops! Ho modificato il post in modo che la sintassi sia corretta.
Billyw,

Può start on vagrant-mounted MOUNTPOINT=/vagrantfunzionare anche?
km6zla,

Per il mio script upstart start on vagrant-mountednon funziona per qualche motivo. Non so perché e non so come eseguirne il debug.
Maectpo,

44

Ho trovato l'utilizzo di un provisioner vagabondo separato con l'opzione run : "always"molto più semplice, ad esempio:

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

Vedi https://docs.vagrantup.com/v2/provisioning/shell.html per il documento completo.


3
Il link fornito non dice nulla al riguardo "always". Forse questo è stato rimosso in una versione più recente.
Rafael Eyng,

6
@RafaelEyng i documenti per questo sono su vagrantup.com/docs/provisioning/basic_usage.html , cerca " ESEGUI UNA VOLTA O SEMPRE"
Daniel Compton,

Ripetuto nel 2017. Funziona come un fascino. Questa è la risposta migliore e ancora aggiornata.
iaforek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.