Bagaimana saya bisa membuat Vagrant memulai server saat startup?

29

Saya ingin Vagrant memulai server Play di folder / vagrant / setiap kali saya melakukan vagrant. Menempatkan @reboot pada crontab tidak berfungsi karena skrip berjalan sebelum / gelrant / folder terhubung.

nama pengguna salah
sumber

Jawaban:

16

Alih-alih menggunakan crontab, sudahkah Anda mencoba menggunakan Upstart ?

Vagrant memancarkan acara "mount-mount" ketika folder bersama dipasang, sehingga Anda bisa membuat file conf pemula, katakanlah /etc/init/play.conf, untuk dijalankan ketika acara itu dipancarkan:

description "Play server"
start on vagrant-mounted

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

... rest of config file for starting Play server ...
billyw
sumber
Terima kasih! Tidak yakin mengapa saya mendapatkan kesalahan /bin/sh: 1: [: =: unexpected operator, jadi saya hanya membatalkan komentar pada baris itu.
nama pengguna salah
Ups! Saya mengedit posting sehingga sintaks sudah benar.
billyw
Bisakah start on vagrant-mounted MOUNTPOINT=/vagrantbekerja juga?
km6zla
Untuk skrip pemula saya start on vagrant-mountedtidak berfungsi karena alasan tertentu. Tidak tahu mengapa dan tidak tahu cara men-debug itu sama sekali.
maectpo
44

Saya menemukan menggunakan penyedia gelandangan terpisah dengan opsi run : "always"jauh lebih mudah, misalnya:

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

Lihat https://docs.vagrantup.com/v2/provisioning/shell.html untuk dokumen lengkap.

culmat
sumber
3
Tautan yang disediakan tidak mengatakan apa-apa "always". Mungkin ini dihapus dalam versi yang lebih baru.
Rafael Eyng
6
@RafaelEyng dokumen untuk itu ada di vagrantup.com/docs/provisioning/basic_usage.html , cari "RUN ONCE ATAU SELALU"
Daniel Compton
Diuji ulang pada tahun 2017. Bekerja seperti pesona. Ini adalah jawaban terbaik dan masih terkini.
iaforek