vagrant-qemu
vagrant-qemu copied to clipboard
A vagrant plugin/provider to manage QEMU virtual machines works on Apple Silicon / m1
Vagrant Qemu Provider
This is a simple Vagrant plugin that adds a qemu provider to Vagrant, allowing Vagrant to control and provision machines using qemu.
Environment preparation
First make sure qemu
works in your environment.
If qemu is not installed yet,
brew install qemu
It is optional, but we strongly suggest installing qemu-virgl to enable graphical acceleration:
brew install akirakyle/qemu-virgl/qemu-virgl
If vagrant
is not installed yet, you should install it:
brew install vagrant
If any troubles met for vagrant installation, check other options
Build and install
Clone this repo:
git clone https://github.com/billyan2018/vagrant-qemu
Then build and install
rake build && vagrant plugin install pkg/vagrant-qemu-0.2.22.gem
Demo
Run an ARM64 VM
vagrant init billyan2018/devbox \
--box-version 0.1.0
vagrant up --provider="libvirt"
as convention, the username/password are both vagrant
Screen:
Run an AMD64 VM
vagrant init failfish/precise64
Add this part in the Vagrantfile
:
config.vm.provider :libvirt do |lv|
lv.qemu_command = "qemu-system-x86_64"
lv.machine = "q35"
lv.cpu = "max"
lv.memory = "4G"
lv.display="cocoa,gl=es"
end
Then vagrant up --provider="libvirt"
Screen:
Configuration items
Item | Description | Default value |
---|---|---|
qemu_command | the command to call qemu, like qemu-system-aarch64 or qemu-system-x86_64 |
"qemu-system-aarch64" |
machine | machine type, run qemu-system-aarch64 -machine help to see the types supported |
"virt,accel=hvf,highmem=off" |
cpu | run qemu-system-aarch64 -cpu help to check CPU supported |
"host" |
smp | Specify the number of cores the guest is permitted to use | "2" |
memory | Memory size | "4G" |
display | Available display backend types: qemu-system-aarch64 -display help |
"cocoa,gl=es" |
gpu | "virtio-gpu-gl-pci" | |
mouse | mouse type | "usb-tablet" |
firmware_location | The firmware to boot the machine | no value for x86, otherwise "/opt/homebrew/share/qemu/edk2-aarch64-code.fd" |
additional_line | any content you would like to append at the end of the command | NA |