Jak mogę zmusić Vagrant do uruchomienia serwera przy uruchomieniu?


29

Chcę, aby Vagrant uruchamiał serwer Play w folderze / vagrant / za każdym razem, gdy robię włóczęgę. Umieszczenie @reboot na crontabie nie działa, ponieważ skrypt jest uruchamiany przed podłączeniem folderu / vagrant /.

Odpowiedzi:


16

Czy zamiast crontab próbowałeś użyć Upstart ?

Vagrant emituje zdarzenie „zamontowane przez włóczęgę”, gdy folder współdzielony jest podłączony, aby można było utworzyć plik conf na starcie, powiedzmy /etc/init/play.conf, uruchamiany podczas emitowania tego zdarzenia:

description "Play server"
start on vagrant-mounted

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

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

Dzięki! Nie jestem pewien, dlaczego dostałem błąd /bin/sh: 1: [: =: unexpected operator, więc po prostu odkomentowałem ten wiersz.
wrongusername

Ups! Zredagowałem post, aby składnia była poprawna.
billyw

Czy może również start on vagrant-mounted MOUNTPOINT=/vagrantdziałać?
km6zla,

Ponieważ mój skrypt startowy start on vagrant-mountedz jakiegoś powodu nie działa. Nie wiem dlaczego i wcale nie wiem, jak go debugować.
maectpo

44

Zauważyłem, że używanie oddzielnego włóczęgi z opcją run : "always"jest o wiele łatwiejsze, np .:

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

Zobacz https://docs.vagrantup.com/v2/provisioning/shell.html dla pełnego dokumentu.


3
Podany link nic nie mówi "always". Być może zostało to usunięte w nowszej wersji.
Rafael Eyng

6
@RafaelEyng dokumenty znajdują się na stronie vagrantup.com/docs/provisioning/basic_usage.html , wyszukaj „URUCHOM RAZ LUB ZAWSZE”
Daniel Compton

Przetestowane w 2017 roku. Działa jak urok. To najlepsza odpowiedź i wciąż aktualna.
iaforek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.