นี่เป็นคำถามใหญ่ดังนั้นฉันจะแยกมันออกเป็นสามส่วน
คนจรจัด
Vagrant ใช้เพื่อตั้งค่าเครื่องเสมือนหนึ่งเครื่องขึ้นไปโดย:
- การนำเข้ารูปภาพที่สร้างไว้ล่วงหน้า (เรียกว่า "กล่อง")
- การตั้งค่าเฉพาะ VM (ที่อยู่ IP, ชื่อโฮสต์, การส่งต่อพอร์ต, หน่วยความจำ ฯลฯ )
- ใช้งานซอฟต์แวร์การจัดสรรเช่น Puppet หรือ Chef
โปรดทราบว่ามันไม่ได้ติดตั้งซอฟต์แวร์หรือตั้งค่าเครื่องผ่านการโหลด VM และการตั้งค่า VirtualBox คิดว่ามันเป็นเครื่องมือการเขียนสคริปต์สำหรับ VirtualBox
นี่คือเหตุผลบางอย่างที่ฉันเคยเห็นสำหรับการใช้ Vagrant ผ่าน VirtualBox
1. ตั้งค่าเครือข่าย Multi-VM ได้อย่างง่ายดาย
เนื้อหาของผู้ใช้พลังงาน Vagrant ส่วนใหญ่ที่ฉันได้อ่านเกี่ยวกับการตั้งค่า VM หลายเครื่องในเวลาเดียวกัน Vagrant ให้ไฟล์กำหนดค่าเดียวสำหรับคุณในการตั้งค่าเหล่านี้ทำให้คุณสามารถเรียกใช้งานได้ทั้งหมดด้วยคำสั่งเดียว
สมมติว่าคุณได้กำหนดค่า VMs สามตัวให้กับเครือข่ายโดยใช้ IP แบบคงที่ในเครือข่ายย่อย 192.168.1. * คุณพบว่าตัวเองอยู่ในตำแหน่งที่ใช้ซับเน็ตนั้นเพื่อแจกที่อยู่ IP และ VM ของคุณขัดแย้งกัน ด้วย Vagrant คุณสามารถแก้ไข Vagrantfile และโหลด VM ใหม่ได้ในขณะที่ VirtualBox คุณจะต้องเปิดการตั้งค่าสำหรับแต่ละ VM หากไม่บู๊ตแต่ละ VM และเปลี่ยนแปลงภายใน
2. การควบคุมแหล่งที่มา
โดยการตั้งค่าในไฟล์ข้อความจะช่วยให้การกำหนดค่าที่จะอยู่ภายใต้การควบคุมแหล่งที่มา ทำการเปลี่ยนแปลงเมื่อสัปดาห์ที่แล้วและทำให้รูปภาพเสียหายหรือไม่ เพียงแค่ย้อนกลับการเปลี่ยนแปลงและโหลด VM อีกครั้ง คุณสามารถทำสิ่งนี้ได้ด้วยสแนปชอตของ VirtualBox แต่จะใช้พื้นที่มากเกินกว่าเพียงแค่ไฟล์ Vagrantfile
3. แพลตฟอร์มที่หลากหลาย
มีจำนวนมากของกล่องที่มีอยู่ในเว็บไซต์เช่นเป็นhttp://vagrantbox.es สิ่งนี้ช่วยให้คุณสามารถลองใช้ OS หรือดิสทริบิวชันต่าง ๆ โดยใช้การเตรียมการเดียวกันเพื่อตั้งค่าสภาพแวดล้อมที่คล้ายคลึงกัน สิ่งนี้สามารถช่วยในการทดสอบหรือเพิ่มการรองรับแพลตฟอร์มใหม่และใช้เวลานานโดยใช้เพียง VirtualBox
มีข้อโต้แย้งมากมายสำหรับการใช้ซอฟต์แวร์การจัดเตรียมเช่นเดียวกับการใช้ภาพรวม สำหรับการอภิปรายเพิ่มเติมผมจะชี้ให้คุณบทความดีสตีเฟนเนลสันสมิ ธ ของวิธีการสร้าง 100 เว็บเซิร์ฟเวอร์ในวัน