UbuntuでVMをたてる

KVM / QEMUを実行基盤として使い、libvirtをVMと仮想ネットワークの管理層として使う。設定の自動化や複数VMの構成を宣言管理することは、TerraformAnsilbeによって後々実現する。

KVM/QEMU + libvirtでVMを1台起動する

# packerges
sudo apt update
 
sudo apt install -y \
  qemu-kvm \
  libvirt-daemon-system \
  libvirt-clients \
  virtinst \
  virt-manager \
  virt-viewer \
  cpu-checker
# KVM
ls -l /dev/kvm
lsmod | grep kvm
 
# add user to group 
sudo usermod -aG libvirt,kvm "$USER"
 
# libvirt
virsh --connect qemu:///system uri
virsh --connect qemu:///system list --all
virsh --connect qemu:///system net-start default
virsh --connect qemu:///system net-autostart default
 
virsh --connect qemu:///system net-dumpxml default
ip addr show virbr0
 
# iso
sudo mkdir -p /var/lib/libvirt/boot
 
sudo cp \
  ~/Downloads/ubuntu-24.04.4-live-server-amd64.iso \
  /var/lib/libvirt/boot/
  
# make vm
virt-install \
  --connect qemu:///system \
  --name lab-node1 \
  --memory 2048 \
  --vcpus 2 \
  --cpu host-passthrough \
  --disk pool=default,size=15,format=qcow2,bus=virtio \
  --cdrom /var/lib/libvirt/boot/ubuntu-24.04.4-live-server-amd64.iso \
  --network network=default,model=virtio \
  --graphics spice \
  --video virtio \
  --osinfo detect=on,require=off \
  --noautoconsole
  
# view installer
virt-viewer \
  --connect qemu:///system \
  lab-node1
  
# poweroff vm
virsh --connect qemu:///system destroy lab-node1
virsh --connect qemu:///system list --all
 
virsh --connect qemu:///system domblklist \
  lab-node1 \
  --inactive \
  --details
  
# start vm
virsh --connect qemu:///system start lab-node1
 
# ssh
virsh --connect qemu:///system net-dhcp-leases default
ssh [email protected]
 
# check
virsh --connect qemu:///system dominfo lab-node1
virsh --connect qemu:///system domiflist lab-node1
virsh --connect qemu:///system domblklist lab-node1 --details
 
ip addr show virbr0
bridge link