Comment puis-je demander à Vagrant de démarrer le serveur au démarrage?

29

Je veux que Vagrant démarre le serveur Play dans le dossier / vagrant / chaque fois que je fais vagabonder. Mettre @reboot sur la crontab ne fonctionne pas car le script s'exécute avant que le dossier / vagrant / ne soit connecté.

nom d'utilisateur incorrect
la source

Réponses:

16

Au lieu d'utiliser crontab, avez-vous essayé d'utiliser Upstart ?

Vagrant émet un événement "monté sur vagrant" lorsque le dossier partagé est monté, vous pouvez donc créer un fichier de configuration par défaut, par exemple /etc/init/play.conf, à exécuter lorsque cet événement est émis:

description "Play server"
start on vagrant-mounted

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

... rest of config file for starting Play server ...
billyw
la source
Merci! Je ne sais pas pourquoi j'ai eu l'erreur /bin/sh: 1: [: =: unexpected operator, alors j'ai juste commenté cette ligne.
falseusername
Oops! J'ai édité le post pour que la syntaxe soit correcte.
billyw
Peut start on vagrant-mounted MOUNTPOINT=/vagrantaussi fonctionner?
km6zla
Pour mon script upstart start on vagrant-mountedne fonctionne pas pour une raison quelconque. Je ne sais pas pourquoi et je ne sais pas du tout comment le déboguer.
maectpo
44

J'ai trouvé l'utilisation d'un provisioner vagabond séparé avec l'option run : "always"beaucoup plus facile, par exemple:

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

Voir https://docs.vagrantup.com/v2/provisioning/shell.html pour le document complet.

culmat
la source
3
Le lien fourni ne dit rien "always". Peut-être que cela a été supprimé dans une version plus récente.
Rafael Eyng
6
@RafaelEyng les documents pour cela sont à vagrantup.com/docs/provisioning/basic_usage.html , recherchez "RUN ONCE OR ALWAYS"
Daniel Compton
Retesté en 2017. Fonctionne comme un charme. C'est la meilleure réponse et toujours à jour.
iaforek