Scripts to manage QEMU-based VMs.
I didn't like libvirt.
Copy the vm folder to your /etc, or elsewhere and adjust the rootdir= statements in the scripts/ files.
Optionally, make symlinks for vm-<script> to /etc/vm/scripts/<script> in your /usr/local/sbin,
and copy init.rc to /etc/init.d/vm for an OpenRC init script. It can be copied as vm.<name> as well to only start a specific VM.
You're gonna want to have socat and qemu-system-x86_64 installed, as well as KVM (CONFIG_KVM) and macvtap (CONFIG_MACVLAN) support in your kernel.
These scripts presume a setup like Hetzner, where IPv4s and IPv6 ranges are directly routed to your machine and a macvtap interface can accept them.
machines.d: Main VM configurations for QEMU;conf: VM configurations forvm-utils;include: Include files for VM configurations;scripts: Various scripts to automate VM management:start: Start a VM named bymachines.d/<name>.conf;stop: Stop a VM named bymachines.d/<name>conf;attach: Attach to management console of VM named bymachines.d/<name.conf>;launch: Launch VM in current terminal session and attach to management console; used bystartifup/ifdown: Network interface management scripts;
- Add an entry in
machines.d, seeexample.conffor format; - Add an entry in
conf, seeexample.conffor format; - Create a new disk:
qemu-img create -f qcow2 /var/vm/disks/<name>qcow2 <size>G; - Start the VM:
scripts/start <name>.
WTFPL; see LICENSE for details.