- Vagrant รองรับ Hyper-V จาก Windows 8.1 ขึ้นไปและรองรับสภาพแวดล้อมที่ทำซ้ำได้
- การติดตั้งและกำหนดค่า Vagrant บน Hyper-V ต้องมีการตั้งค่าเครือข่ายและการจัดเตรียมเฉพาะ
- Hyper-V ไม่อนุญาตให้ใช้คุณสมบัติบางอย่าง เช่น IP แบบคงที่ แต่ก็มีโซลูชันเสริม
- ขอแนะนำให้ใช้อิมเมจ 'กล่อง' ที่เข้ากันได้กับ Hyper-V เพื่อหลีกเลี่ยงข้อผิดพลาดในการบูต

เริ่มแรกเลย ตั้งค่าสภาพแวดล้อมเสมือนอย่างรวดเร็วและเป็นระเบียบใน Windows ดูเหมือนว่าจะเป็นภารกิจที่ซับซ้อน โชคดีที่เรามีเครื่องมือเช่น Vagrant บน Hyper-V เพื่อให้มันเป็นไปได้ แม้ว่าการใช้งานจะเกี่ยวข้องกับ VirtualBox มากกว่า แต่ก็ยังเข้ากันได้ดีกับเทคโนโลยีเสมือนจริงที่รวมอยู่ใน Windows หลายเวอร์ชันแล้ว
ถึงกระนั้นการติดตั้งและกำหนดค่า คนเร่ร่อน ใน Hyper-V มันไม่ง่ายอย่างที่คิด มี ขั้นตอนสำคัญ และคุณสมบัติพิเศษของผู้ให้บริการเสมือนจริงของ Microsoft ที่คุณควรทราบ ในบทความนี้ เราจะให้ข้อมูลทั้งหมดที่คุณต้องการเพื่อเปิดตัวสภาพแวดล้อมเสมือนโดยปฏิบัติตามสูตรนี้โดยไม่มีปัญหาใดๆ
Vagrant คืออะไรและทำไมจึงต้องใช้ Hyper-V
คนเร่ร่อน มันคือ เครื่องมือโอเพนซอร์ส ที่อนุญาตให้ สร้างสภาพแวดล้อมเสมือนที่สามารถทำซ้ำได้และพกพาได้ผ่านทางไฟล์กำหนดค่าที่เรียบง่าย ได้รับการออกแบบมาสำหรับนักพัฒนา ผู้ดูแลระบบ หรือใครก็ตามที่ต้องการสภาพแวดล้อมที่สอดคล้องกันระหว่างคอมพิวเตอร์ต่างๆ พร้อมรองรับระบบปฏิบัติการหลายระบบ
ในส่วนของพวกเขา Hyper-V คือไฮเปอร์ไวเซอร์ดั้งเดิมของ Microsoftรวมอยู่ใน Windows 8.1 เวอร์ชัน Professional, Enterprise และ Education ขึ้นไป มันมีประสิทธิภาพและความเสถียรสูง โดยเฉพาะอย่างยิ่งมีประโยชน์เมื่อไฮเปอร์ไวเซอร์อื่นเช่น VirtualBox ขัดแย้งในสภาพแวดล้อม Windows สมัยใหม่
เหตุผลที่พบบ่อยที่สุดประการหนึ่งในการเลือกใช้ ไฮเปอร์-วี แทน VirtualBox คือมีผลิตภัณฑ์บางอย่างเช่น เดสก์ท็อป Docker หรือ WSL2 (ระบบย่อย Windows สำหรับ Linux) จำเป็นต้องเปิดใช้งาน Hyper-V ซึ่งจะทำให้เกิดความไม่เข้ากันกับ VirtualBox ทำให้ Hyper-V เป็นโซลูชันเดียวที่ถูกต้องหากเราไม่ต้องการเปิดใช้งานหรือปิดใช้งานบริการ
การติดตั้ง Vagrant และการเปิดใช้งาน Hyper-V
ก่อนที่คุณจะเริ่มใช้ Vagrant บน Hyper-V ตรวจสอบให้แน่ใจว่าคอมพิวเตอร์ของคุณเปิดใช้งาน Hyper-V แล้ว- โปรดระวังเนื่องจากโดยปกติแล้วจะไม่ได้เปิดใช้งานตามค่าเริ่มต้น คุณสามารถดำเนินการนี้ได้ด้วยตนเองจากส่วน “เปิดคุณลักษณะของ Windows” หรือใช้คำสั่งต่อไปนี้ใน PowerShell (ในฐานะผู้ดูแลระบบ):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
หลังจากดำเนินการคำสั่งนี้แล้ว จำเป็นต้องรีสตาร์ทคอมพิวเตอร์ เพื่อให้การเปลี่ยนแปลงมีผลบังคับใช้
ในเวลาเดียวกันคุณจะต้อง ดาวน์โหลดและติดตั้ง Vagrant จากเว็บไซต์อย่างเป็นทางการ- ตัวติดตั้งมีทุกสิ่งที่คุณต้องการเพื่อใช้คำสั่งได้ vagrant โดยตรงจากเครื่องปลายทางใดก็ได้
เมื่อติดตั้งแล้ว คุณสามารถตรวจสอบว่าทุกอย่างถูกต้องโดยรันคำสั่งต่อไปนี้ในเทอร์มินัล:
vagrant --version
คำสั่งนี้ควรส่งคืนเวอร์ชันที่ติดตั้ง เช่น แวกแรนท์ 2.4.0.
ขั้นตอนที่ 1: เตรียมสภาพแวดล้อมฐาน
Vagrant นั้นใช้ "กล่อง" เป็นพื้นฐาน ซึ่งเป็นอิมเมจพื้นฐานของระบบปฏิบัติการที่ติดตั้งไว้ล่วงหน้า- ข้อมูลเหล่านี้จะดาวน์โหลดโดยอัตโนมัติจากดัชนีสาธารณะที่เรียกว่า Vagrant Cloud ในการเริ่มต้น คุณต้องสร้างโฟลเดอร์ที่คุณจะใช้งานโปรเจ็กต์ของคุณ ตัวอย่างเช่น:
mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36
คำสั่งนี้ จะสร้างไฟล์ชื่อ Vagrantfile ซึ่งเป็นที่ที่การกำหนดค่าเครื่องเสมือนทั้งหมดอยู่ ภายในนั้นคุณจะต้องปรับพารามิเตอร์หลักบางตัวเพื่อใช้ Hyper-V
การกำหนดค่าผู้ให้บริการ Hyper-V
โดยค่าเริ่มต้น Vagrant จะพยายามใช้ VirtualBox เป็นผู้ให้บริการ- ในการใช้ Hyper-V คุณสามารถระบุสิ่งนี้ได้ทุกครั้งโดยรัน:
vagrant up --provider=hyperv
หรือตั้งค่า Hyper-V เป็นผู้ให้บริการเริ่มต้นโดยการตั้งค่าตัวแปรสภาพแวดล้อม:
$env:VAGRANT_DEFAULT_PROVIDER="hyperv"
ขั้นตอนนี้สามารถทำได้จาก PowerShell หรือโดยตรงในตัวแปรสภาพแวดล้อมระบบของคุณ
ภายใน Vagrantfile ขอแนะนำให้ระบุผู้ให้บริการด้วยการตั้งค่าที่เฉพาะเจาะจง- ตัวอย่างพื้นฐานได้แก่:
Vagrant.configure("2") do |config|
config.vm.box = "generic/alpine36"
config.vm.provider "hyperv" do |h|
h.vmname = "mi_vm_hyperv"
h.memory = 2048
h.cpus = 2
end
end
พารามิเตอร์เหล่านี้ช่วยให้คุณกำหนด RAM, จำนวนคอร์ และชื่อเครื่องที่จะมีใน Hyper-V.
เครือข่ายและการเชื่อมต่อใน Hyper-V
จุดอ่อนประการหนึ่งของ Hyper-V ใน Vagrant คือมันไม่ได้กำหนดค่าเครือข่ายโดยอัตโนมัติ- ด้วยเหตุนี้ คุณจะต้องเลือก vSwitch ด้วยตนเองโดยใช้การเชื่อมต่อภายนอกที่สร้างไว้แล้วใน Hyper-V
หากต้องการเชื่อมโยงเครือข่ายส่วนตัวหรือเลือก vSwitch เฉพาะ คุณสามารถใช้:
config.vm.network "private_network", bridge: "NombreDelvSwitch"
โปรดจำไว้ว่า Hyper-V ไม่อนุญาตให้คุณกำหนดค่า IP แบบคงที่จาก Vagrant ได้โดยตรงดังนั้นจึงต้องตั้งค่าโดยใช้สคริปต์หรือโดยการแก้ไขการตั้งค่าระบบปฏิบัติการของแขก
การเข้าถึงเครื่อง: SSH และเครื่องมืออื่น ๆ
แม้ว่าอาจดูเหมือนว่าไม่สามารถใช้ SSH บน Windows ได้ Vagrant มีไคลเอนต์ SSH ในตัวเพื่อให้คุณสามารถเข้าถึงได้โดยไม่ต้องติดตั้งโปรแกรมเพิ่มเติม
เข้าสู่ระบบด้วย:
vagrant ssh
คุณยังสามารถใช้ PuTTY ได้ แต่ในกรณีนั้นคุณจะต้อง แปลงคีย์ส่วนตัวที่สร้างโดย Vagrant เป็นรูปแบบ PPK (ด้วย PuTTYgen) เนื่องจากไม่ได้รับการรองรับโดยตรง กุญแจอยู่ที่:
.vagrant/machines/default/hyperv/private_key
วิธีนี้จะช่วยให้คุณสามารถเชื่อมต่อด้วยตนเองจากไคลเอนต์ SSH ที่คุณต้องการ
การจัดเตรียมด้วยสคริปต์
ประโยชน์ที่ใหญ่ที่สุดประการหนึ่งของ Vagrant คือการรองรับ การจัดเตรียมอัตโนมัติด้วยสคริปต์- คุณสามารถเปิดใช้สคริปต์เชลล์สำหรับการติดตั้งซ้ำได้:
config.vm.provision "shell", path: "bootstrap.sh"
ภายในไฟล์ bootstrap.sh คุณสามารถรวมคำแนะนำเช่น:
apk update
apk add git
นี่จะทำงาน ครั้งแรกที่สร้าง VM- หากคุณต้องการนำสคริปต์มาใช้ใหม่ในภายหลัง คุณสามารถทำได้ดังนี้:
vagrant reload --provision
การทำงานกับเครื่องจักรหลายเครื่อง
Vagrant ช่วยให้คุณสามารถจัดการเครื่องมากกว่าหนึ่งเครื่องจากไฟล์เดียว ซึ่งมีประโยชน์สำหรับห้องปฏิบัติการหรือคลัสเตอร์เซิร์ฟเวอร์ การตั้งค่าทั่วไปของห้องปฏิบัติการอาจประกอบด้วยคำจำกัดความหลายประการ:
Vagrant.configure("2") do |config|
config.vm.define "master" do |master|
master.vm.box = "bento/ubuntu-20.04"
master.vm.hostname = "master"
master.vm.network :private_network, ip: "10.0.0.10"
end
(1..2).each do |i|
config.vm.define "node#{i}" do |node|
node.vm.box = "bento/ubuntu-20.04"
node.vm.hostname = "node#{i}"
node.vm.network :private_network, ip: "10.0.0.#{i + 10}"
end
end
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y avahi-daemon libnss-mdns
SHELL
end
ซึ่งจะทำให้เครื่องจักรสามารถจดจำกันและกันได้ด้วยชื่อต่างๆ เช่น node1.ท้องถิ่น o มาสเตอร์.ท้องถิ่น ขอบคุณการใช้ mDNS
เคล็ดลับประสิทธิภาพและความเข้ากันได้
ประสิทธิภาพของ Vagrant บน Hyper-V โดยทั่วไปถือว่าดี แต่จะขึ้นอยู่กับ:
- พลังของทีมเจ้าภาพของคุณ (RAM, CPU, ประเภทของดิสก์)
- ภาพฐานที่ใช้ (ควรใช้กล่องที่ได้รับการเพิ่มประสิทธิภาพดีกว่า)
- จำนวนเครื่องจักรที่ทำงานในเวลาเดียวกัน
- การใช้งานดิสก์แบบแยกส่วนและการจัดเตรียมแบบบาง
แนวทางปฏิบัติทั่วไปในการเขียนสคริปต์หลายสภาพแวดล้อมคือการสร้าง กล่องส่วนบุคคล ซึ่งรวมหมวดหมู่ทั้งหมดของคุณไว้แล้ว: เครื่องมือ บริการ เส้นทาง ฯลฯ ซึ่งจะช่วยหลีกเลี่ยงการต้องติดตั้งสิ่งเดียวกันซ้ำในแต่ละอินสแตนซ์
การใช้ Vagrant บน Hyper-V บน Windows ถือว่ามีความเป็นไปได้อย่างแน่นอนแม้ว่าจะมีข้อจำกัดบางประการ แต่ก็สามารถแก้ไขได้ด้วยการปรับเปลี่ยนเล็กๆ น้อยๆ Hyper-V มอบความแข็งแกร่งและความเข้ากันได้กับเทคโนโลยี Microsoft สมัยใหม่ ในขณะที่ Vagrant ช่วยอำนวยความสะดวกในการทำงานอัตโนมัติและการพกพาของสภาพแวดล้อมการพัฒนา
ดัชนี
- 1 Vagrant คืออะไรและทำไมจึงต้องใช้ Hyper-V
- 2 การติดตั้ง Vagrant และการเปิดใช้งาน Hyper-V
- 3 ขั้นตอนที่ 1: เตรียมสภาพแวดล้อมฐาน
- 4 การกำหนดค่าผู้ให้บริการ Hyper-V
- 5 เครือข่ายและการเชื่อมต่อใน Hyper-V
- 6 การเข้าถึงเครื่อง: SSH และเครื่องมืออื่น ๆ
- 7 การจัดเตรียมด้วยสคริปต์
- 8 การทำงานกับเครื่องจักรหลายเครื่อง
- 9 เคล็ดลับประสิทธิภาพและความเข้ากันได้
บรรณาธิการเชี่ยวชาญด้านเทคโนโลยีและอินเทอร์เน็ตด้วยประสบการณ์มากกว่าสิบปีในสื่อดิจิทัลต่างๆ ฉันทำงานเป็นบรรณาธิการและผู้สร้างเนื้อหาให้กับบริษัทอีคอมเมิร์ซ การสื่อสาร การตลาดออนไลน์ และการโฆษณา ฉันยังได้เขียนไว้ในเว็บไซต์เศรษฐศาสตร์ การเงิน และภาคส่วนอื่นๆ ด้วย งานของฉันก็คือความหลงใหลของฉันเช่นกัน ตอนนี้ผ่านบทความของฉันใน Tecnobitsฉันพยายามสำรวจข่าวสารและโอกาสใหม่ ๆ ที่โลกแห่งเทคโนโลยีมอบให้เราทุกวันเพื่อปรับปรุงชีวิตของเรา



