KVM Cheatsheet
Für den Betrieb von Entwicklungs- oder Testumgebungen benutze ich in der Virtuelle Maschinen, welche, zumindest auf meinem Entwicklungsrechner, mit VirtualBox betrieben werden.
Für Nightly Builds und Tests habe ich mir inzwischen einen Server angeschafft welcher mit einem Ubuntu Server läuft.
Anders als bei meinem Entwicklungsrechner soll hier KVM stat VirtualBox zum Einsatz kommen. Dazu habe ich diesen Blog-Eintrage angefangen, um mir hier die gängigsten Befehle zu notieren. Eventuell kann das der ein oder andere auch gebrauchen.
Installation
Da ich Ubuntu-Server einsetze kann ich KVM ganz einfach per apt installieren.
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
sudo adduser root kvm
sudo adduser $USER kvm
sudo modprobe kvm_intel
sudo systemctl enable --now libvirtd
sudo virsh list --all
Client und Host auf einem Gerät:
wget http://mirror.bauhuette.fh-aachen.de/linuxmint-cd/stable/20/linuxmint-20-mate-64bit.iso
kvm -cdrom linuxmint-20-mate-64bit.iso -m 512 -boot d
Remote
Host
cd /var/lib/libvirt/boot
sudo wget http://mirror.bauhuette.fh-aachen.de/linuxmint-cd/stable/20/linuxmint-20-mate-64bit.iso
sudo apt-get install qemu-kvm virtinst bridge-utils cpu-checker libvirt-daemon-system
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
# Linux Mint Example
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/LM20.qcow2 50G
sudo virt-install --name LM20 --ram=2048 --vcpus=2 --cpu host --hvm --disk path=/var/lib/libvirt/images/LM20.qcow2 --cdrom /var/lib/libvirt/boot/linuxmint-20-mate-64bit.iso --graphics vnc
sudo virsh dumphex LM20 > LM20.xml
# Windows Example
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/WIN10.qcow2 200G
sudo virt-install --name WIN10 --ram=8196 --vcpus=2 --cpu host --hvm --disk path=/var/lib/libvirt/images/WIN10.qcow2 --cdrom /var/lib/libvirt/boot/WIN10.iso --graphics vnc,listen=0.0.0.0
sudo virsh dumphex WIN10 > WIN10.xml
sudo virsh start LM20
sudo virsh suspend LM20
sudo virsh resume LM20
sudo virsh shutdown LM20
sudo virsh destroy LM20
Netzwerkbrücke mit Ubuntu NetworkManager.
Achtung: das Script dient für mich hauptsächlich dazu das automatische generieren von VMs zu testen.
sudo apt-get install bridge-utils
sudo virsh shutdown WIN10
sudo virsh destroy WIN10
sudo virsh undefine WIN10
sudo virsh shutdown LM20
sudo virsh destroy LM20
sudo virsh undefine LM20
sudo virsh net-destroy vbr0
sudo virsh net-undefine vbr0
sudo nmcli con show
q
sudo virsh shutdown WIN10
sudo virsh destroy WIN10
sudo virsh undefine WIN10
sudo nmcli con down br0
sudo nmcli con delete br0
sudo nmcli con delete bridge-slave-wlx000b819609d3
sudo nmcli con show
q
sudo nmcli con add ifname br0 type bridge con-name br0
sudo nmcli con add type bridge-slave ifname wlx000b819609d3 master br0
sudo nmcli con modify br0 bridge.stp no
sudo nmcli con down Coolcow
sudo nmcli con up br0
sudo nmcli con show
q
sudo virsh net-define vbr0.xml
sudo virsh net-start vbr0
sudo virsh net-autostart vbr0
sudo virsh create WIN10.xml
sudo virsh start WIN10
sudo virsh create LM20.xml
sudo virsh start LM20
Client
Durch --graphics vnc,listen=0.0.0.0 im Host Setup, sind die VMs anfangs per VNC erreichbar, nach dem einrichten sollte auf das Gast-Betriebssystem selbst zugegriffen werden, z.b. RemoteDesktop, etc.
Weiteres folgt bald.