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é.

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 ...

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.