Running on Libvirt Qemu/KVM

Libvirt is an open-source API, daemon and management tool for managing platform virtualization. There are several ways to deploy VyOS on libvirt kvm. Use Virt-manager and native CLI. In an example we will be use use 4 gigabytes of memory, 2 cores CPU and default network virbr0.

CLI

Deploy from ISO

Create VM name vyos_r1. You must specify the path to the ISO image, the disk qcow2 will be created automatically. The default network is the virtual network (type Virtio) created by the hypervisor with NAT.

$ virt-install -n vyos_r1 \
  --ram 4096 \
  --vcpus 2 \
  --cdrom /var/lib/libvirt/images/vyos.iso \
  --os-variant debian10 \
  --network network=default \
  --graphics vnc \
  --hvm \
  --virt-type kvm \
  --disk path=/var/lib/libvirt/images/vyos_r1.qcow2,bus=virtio,size=8 \
  --noautoconsole

Connect to VM with command virsh console vyos_r1

$ virsh console vyos_r1

Connected to domain vyos_r1
Escape character is ^]

vyos login: vyos
Password:

vyos@vyos:~$ install image

After installation - exit from the console using the key combination Ctrl + ] and reboot the system.

Deploy from qcow2

The convenience of using KVM images is that they don’t need to be installed. Download predefined VyOS.qcow2 image for KVM

curl --url link_to_vyos_kvm.qcow2 --output /var/lib/libvirt/images/vyos_kvm.qcow2

Create VM with import qcow2 disk option.

$ virt-install -n vyos_r2 \
   --ram 4096 \
   --vcpus 2 \
   --os-variant debian10 \
   --network network=default \
   --graphics vnc \
   --hvm \
   --virt-type kvm \
   --disk path=/var/lib/libvirt/images/vyos_kvm.qcow2,bus=virtio \
   --import \
   --noautoconsole

Connect to VM with command virsh console vyos_r2

$ virsh console vyos_r2

Connected to domain vyos_r2
Escape character is ^]

vyos login: vyos
Password:

vyos@vyos:~$

If you can not go to this screen

vyos login: vyos
Password:

Stayed in this stage. This is because the KVM console is chosen as the default boot option.

Connected to domain vyos_r2
Escape character is ^]

Open a secondary/parallel session and use this command to reboot the VM:

$ virsh reboot vyos_r2

Then go to the first session where you opened the console. Select VyOS 1.4.x for QEMU (Serial console) and press Enter

The system is fully operational.

Virt-manager

The virt-manager application is a desktop user interface for managing virtual machines through libvirt. On the linux open VMM.

Deploy from ISO

  1. Open VMM and Create a new VM

  2. Choose Local install media (ISO)

../../_images/virt-libvirt-01.png
  1. Choose path to iso vyos.iso. Operating System can be any Debian based.

../../_images/virt-libvirt-02.png
  1. Choose Memory and CPU

../../_images/virt-libvirt-03.png
  1. Disk size

../../_images/virt-libvirt-04.png
  1. Name of VM and network selection

../../_images/virt-libvirt-05.png
  1. Then you will be taken to the console.

../../_images/virt-libvirt-06.png

Deploy from qcow2

Download predefined VyOS.qcow2 image for KVM

curl --url link_to_vyos_kvm.qcow2 --output /var/lib/libvirt/images/vyos_kvm.qcow2
  1. Open VMM and Create a new VM

  2. Choose Import existing disk image

../../_images/virt-libvirt-qc-01.png
  1. Choose the path to the image vyos_kvm.qcow2 that was previously downloaded . Operation System can be any Debian based.

../../_images/virt-libvirt-qc-02.png
  1. Choose Memory and CPU

../../_images/virt-libvirt-03.png
  1. Name of VM and network selection

../../_images/virt-libvirt-05.png
  1. Then you will be taken to the console.

../../_images/virt-libvirt-qc-03.png