vm-alloc is a command-line tool for spinning up and managing Virtual Machines (VMs) in cloud-like environments. It is built on top of libvirt, KVM, and QEMU, and uses cloud images (primarily Ubuntu) for quick provisioning.
This project is intended for research and exploration of virtualization in cloud environments. It is not intended for production use.
- Linux host with virtualization support.
- Installed dependencies:
libvirtqemufirecrackervirt-installcloud-utils(forcloud-init)
- Ubuntu cloud images.
- Clone this repository
git clone https://github.com/open-ug/vm-alloc.git- Install and Setup dependencies
sudo apt update
# Install QEMU, libvirt etc
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils cloud-utils
sudo systemctl enable --now libvirtd
sudo usermod -aG libvirt $(whoami)
newgrp libvirtTo install Firecraker, follow the Getting Started with Firecracker Guide
- Run the
initcommand
cargo run init- Then Run the program
$ cargo run
Usage: vmprov <COMMAND>
Commands:
init
create
list
delete
boot
shutdown
restart
vm-info
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print helpNote: Different branches on this project explore different implementations of this program as follows
- The
mainbranch explores an implementation usinglibvirtandQEMU- The
qemu-backendbranch explores and implementation usingQEMUwith the QEMU Monitor Protocol with cloud images- The
firecracker-backendbranch explores and implementation using AWS Firecracker with MicroVMs
This project is experimental and should not be used in production. It is provided as-is for research purposes.