ฉันจะให้ Vagrant เริ่มต้นเซิร์ฟเวอร์ได้อย่างไรเมื่อเริ่มต้น


29

ฉันต้องการให้ Vagrant เริ่มต้นเซิร์ฟเวอร์ Play ใน / vagrant / โฟลเดอร์ทุกครั้งที่ฉันออกจากที่ทำงาน การวาง @reboot บน crontab จะไม่ทำงานเพราะสคริปต์จะทำงานก่อนที่โฟลเดอร์ / vagrant / จะเชื่อมต่อ

คำตอบ:


16

แทนที่จะลองใช้ crontab คุณลองใช้งานพุ่งพรวดหรือไม่?

Vagrant ส่งเสียงเหตุการณ์ "เมานต์ที่มีผู้ติดตั้ง" เมื่อมีการติดตั้งโฟลเดอร์ที่ใช้ร่วมกันดังนั้นคุณสามารถสร้างไฟล์ conf พุ่งพรวดขึ้น/etc/init/play.confมาเพื่อให้ทำงานเมื่อมีการปล่อยเหตุการณ์ดังกล่าว:

description "Play server"
start on vagrant-mounted

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

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

ขอบคุณ! ไม่แน่ใจว่าทำไมฉันถึงได้รับข้อผิดพลาด/bin/sh: 1: [: =: unexpected operatorดังนั้นฉันจึงไม่ใส่เครื่องหมายบรรทัดนั้น
ต้อง

อ๊ะ! ฉันแก้ไขโพสต์เพื่อให้ไวยากรณ์นั้นถูกต้อง
billyw

สามารถstart on vagrant-mounted MOUNTPOINT=/vagrantทำงานได้เช่นกัน?
km6zla

สำหรับสคริปต์พุ่งพรวดของฉันstart on vagrant-mountedไม่ทำงานด้วยเหตุผลบางอย่าง ไม่ทราบสาเหตุและไม่ทราบวิธีแก้ไขข้อบกพร่องทั้งหมด
maectpo

44

ฉันพบว่าใช้ตัวจัดสรรคนพเนจรแยกต่างหากพร้อมตัวเลือกrun : "always"ง่ายขึ้นมากมายเช่น:

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

ดูhttps://docs.vagrantup.com/v2/provisioning/shell.htmlสำหรับเอกสารฉบับเต็ม


3
"always"ลิงก์ที่ให้ไม่ได้พูดอะไรเกี่ยวกับ บางทีนี่อาจถูกลบในรุ่นที่ใหม่กว่า
Rafael Eyng

6
@Rafael หาเอกสารจากที่vagrantup.com/docs/provisioning/basic_usage.htmlค้นหา "RUN ONCE OR ALWAYS"
Daniel Compton

ทดสอบใหม่ในปี 2560 ทำงานเหมือนมีเสน่ห์ นี่คือคำตอบที่ดีที่สุดและยังคงทันสมัย
iaforek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.