วิธีรับไฟล์ Vagrant หลายเครื่องเพื่อใช้ VM หนึ่งเครื่อง

มีวิธีการตั้งค่าหลายเครื่องโดยที่แต่ละการกำหนดค่าใช้เครื่องเดียวกันหรือไม่ ฉันออกแบบเว็บไซต์และต้องการให้ VM ของฉันได้รับการกำหนดค่าให้ทำงานเป็นเว็บเซิร์ฟเวอร์ที่มีที่อยู่ IP และให้แต่ละการกำหนดค่าโหลดโฟลเดอร์ซิงค์และชื่อโดเมน

นี่คือสิ่งที่ฉันมีจนถึงตอนนี้:

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network :forwarded_port, host: 8080, guest: 80
config.vm.network "private_network", ip: "172.28.128.3"

config.vm.define "myoffercode" do |vm1|
    vm1.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html"
end

config.vm.define "dailybayou" do |vm2|
    vm2.vm.synced_folder "/Users/gregoryschultz/Sites/dailybayou", "/var/www/html"
end
end

ขอบคุณสำหรับความช่วยเหลือ


person Gregory Schultz    schedule 06.10.2016    source แหล่งที่มา


คำตอบ (1)


มีวิธีการตั้งค่าหลายเครื่องโดยที่แต่ละการกำหนดค่าใช้เครื่องเดียวกันหรือไม่

ไม่ คุณทำไม่ได้ 1 เครื่องกำหนดค่า = 1 VM ดังนั้นเมื่อคุณเขียน

config.vm.define "myoffercode" do |vm1|
    vm1.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html"
end

มันสร้าง VM ใหม่ที่จัดการโดยคนจรจัดจริงๆ

ฉันออกแบบเว็บไซต์และต้องการให้ VM ของฉันได้รับการกำหนดค่าให้ทำงานเป็นเว็บเซิร์ฟเวอร์ที่มีที่อยู่ IP และให้แต่ละการกำหนดค่าโหลดโฟลเดอร์ซิงค์และชื่อโดเมน

วิธีแก้ไขคือใช้ 1 VM และใช้ โฮสต์เสมือน

ดังนั้นใน VM ของคุณ คุณจะซิงค์โปรเจ็กต์ทั้งหมดของคุณ

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network :forwarded_port, host: 8080, guest: 80
  config.vm.network "private_network", ip: "172.28.128.3"

  config.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html/myoffercode"
  config.vm.synced_folder "/Users/gregoryschultz/Sites/dailybayou", "/var/www/html/dailybayou"
end

และในการกำหนดค่า Apache ของคุณ

# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/www/html/dailybayou"
    ServerName dailybayou.localdev

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/myoffercode"
    ServerName myoffercode.localdev

    # Other directives here
</VirtualHost>

ตรวจสอบให้แน่ใจว่าได้อัปเดตไฟล์โฮสต์ในเครื่องของคุณให้ชี้ 172.28.128.3 ไปยังเว็บไซต์เหล่านั้น

person Frederic Henri    schedule 07.10.2016
comment
เป็นไปได้ไหมที่จะมีเครื่องหลายเครื่อง แต่การใช้งานมีกล่องเดียวกันบน VM ทั้งหมด ตัวอย่าง: กล่อง 1vm และกำหนดค่าอย่างถูกต้อง จากนั้นใช้กล่องนั้นบน VM2, VM3 ฯลฯ - person Gregory Schultz; 07.10.2016
comment
ใช่คุณทำได้ - ดูโพสต์ของฉัน [stackoverflow.com/a/39838357/4296747] มันเกี่ยวกับสแน็ปช็อต (ไม่ใช่อะไร ที่คุณต้องการ) แต่ส่วนที่เกี่ยวกับการจัดเตรียมหรือการบรรจุกล่องใหม่คือสิ่งที่คุณต้องการใช้ - person Frederic Henri; 07.10.2016