How to install Web Console with Virtual Machines on Debian 10

debian is your physical machine running Debian 10 where you'll install Web Console with Virtual Machines

vm1 is your virtual machine where you'll install Debian 10 but you can install any distro (even Windows)

Install Web Console with Virtual Machines

debian>$ echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/backports.list
debian>$ sudo apt update
debian>$ sudo apt install -t buster-backports cockpit cockpit-machines
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  augeas-lenses cockpit-bridge cockpit-networkmanager cockpit-packagekit cockpit-storaged cockpit-system cockpit-ws
  dmeventd exim4-base exim4-config exim4-daemon-light genisoimage gir1.2-libosinfo-1.0 ibverbs-providers ipxe-qemu
  libaio1 libaugeas0 libblockdev-mdraid2 libbytesize1 libcapstone4 libdaxctl1 libdevmapper-event1.02.1 libfdt1
  libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libgnutls-dane0 libgovirt-common libgovirt2 libgsasl7 libibverbs1
  libiscsi7 libkyotocabinet16v5 liblvm2cmd2.03 liblzo2-2 libmailutils5 libndctl6 libnetcf1 libntlm0 libpmem1
  libpwquality-tools librados2 librbd1 librdmacm1 libreadline5 libslirp0 libspice-server1 libssh-4 libtirpc-common
  libtirpc3 libunbound8 liburcu6 liburing1 libvdeplug2 libvirglrenderer0 libvirt-clients libvirt-daemon
  libvirt-daemon-system libvirt-dbus libvirt-glib-1.0-0 libvirt0 libxencall1 libxendevicemodel1 libxenevtchn1
  libxenforeignmemory1 libxengnttab1 libxenmisc4.11 libxenstore3.0 libxentoolcore1 libxentoollog1 libxml2-utils lvm2
  mailutils mailutils-common mdadm netcat-openbsd ovmf python3-distutils python3-lib2to3 python3-libvirt
  python3-libxml2 qemu-block-extra qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86 qemu-utils
  seabios sysuser-helper thin-provisioning-tools virt-viewer virtinst
Suggested packages:
  augeas-doc cockpit-doc cockpit-pcp sssd-dbus exim4-doc-html | exim4-doc-info eximon4 spf-tools-perl swaks wodim
  cdrkit-doc augeas-tools libvirt-daemon-driver-storage-gluster libvirt-daemon-driver-storage-rbd
  libvirt-daemon-driver-storage-zfs numad auditd nfs-common open-iscsi pm-utils radvd systemtap zfsutils mailutils-mh
  mailutils-doc dracut-core samba vde2 debootstrap
The following NEW packages will be installed:
  augeas-lenses cockpit cockpit-bridge cockpit-machines cockpit-networkmanager cockpit-packagekit cockpit-storaged
  cockpit-system cockpit-ws dmeventd exim4-base exim4-config exim4-daemon-light genisoimage gir1.2-libosinfo-1.0
  ibverbs-providers ipxe-qemu libaio1 libaugeas0 libblockdev-mdraid2 libbytesize1 libcapstone4 libdaxctl1
  libdevmapper-event1.02.1 libfdt1 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libgnutls-dane0 libgovirt-common
  libgovirt2 libgsasl7 libibverbs1 libiscsi7 libkyotocabinet16v5 liblvm2cmd2.03 liblzo2-2 libmailutils5 libndctl6
  libnetcf1 libntlm0 libpmem1 libpwquality-tools librados2 librbd1 librdmacm1 libreadline5 libslirp0 libspice-server1
  libssh-4 libtirpc-common libtirpc3 libunbound8 liburcu6 liburing1 libvdeplug2 libvirglrenderer0 libvirt-clients
  libvirt-daemon libvirt-daemon-system libvirt-dbus libvirt-glib-1.0-0 libvirt0 libxencall1 libxendevicemodel1
  libxenevtchn1 libxenforeignmemory1 libxengnttab1 libxenmisc4.11 libxenstore3.0 libxentoolcore1 libxentoollog1
  libxml2-utils lvm2 mailutils mailutils-common mdadm netcat-openbsd ovmf python3-distutils python3-lib2to3
  python3-libvirt python3-libxml2 qemu-block-extra qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86
  qemu-utils seabios sysuser-helper thin-provisioning-tools virt-viewer virtinst
0 upgraded, 95 newly installed, 0 to remove and 146 not upgraded.
Need to get 66.2 MB of archives.
After this operation, 188 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...
debian>$ sudo reboot

Download netinstall iso to local iso directory

debian>$ mkdir iso
debian>$ cd ~/iso
debian>$ curl -L -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.10.0-amd64-netinst.iso
or
debian>$ curl -L -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.0.0-amd64-netinst.iso

curl

  • -L If the server reports that the requested page has moved to a different location, this option will make curl redo the request on the new place. (redirect)

    -O Write output to <file> instead of stdout.

Open TCP Port 9090 if firewall is installed

If you have ufw for your firewall:

debian> $ sudo ufw allow 9090/tcp
debian> $ sudo ufw reload

Login to Web Console with browser from your workstation (PC, Mac or Linux)

Add IP address for debian system in your /etc/hosts file so you can type following URL in the browser.

% curl -I http://debian:9090
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Location: https://debian:9090/
Content-Length: 73
X-DNS-Prefetch-Control: off
Referrer-Policy: no-referrer
X-Content-Type-Options: nosniff
Cross-Origin-Resource-Policy: same-origin

Chrome or Firefox --> https://debian:9090/ --> Advanced --> Proceed to debian

  • Activate default networks in virtual machines to avoid following error
  • Also, check on [x] Run when host boots

Creation of VM vm1 failed
ERROR Requested operation is not valid: 
network 'default' is not active Domain installation does not appear to have been successful. 
If it was, you can restart your domain by running: virsh --connect qemu:///system start vm1 
otherwise, please restart your installation.

Create your first virtual machine (vm1) from Web Console

   Virtual Machines --> Create VM
   Name: vm1
   Connection: System
   Installation type: Local install media
   Installation source: /home/tchung/iso/debian-10.10.0-amd64-netinst.iso
   Operation system: Debian 10 (buster)
   Storage: Create new volume
   Size:  20 GiB
   Memory: 2 GiB
   [x] Immediately start VM

Install Debian 10 or 11 on virtual machine as you do in physical machine

https://www.debian.org/releases/stable/amd64/

Login to your first virtual machine (vm1) with ssh and confirm you can ping

Add IP address for vm1 in your /etc/hosts file on debian system so you can ssh to vm1 instead of IP address

debian>$ ssh vm1
   vm1>$ ping www.google.com
         ... works! 

Updating osinfo-db for osinfo-query and virt-install

$ curl -O -L https://deb.debian.org/debian/pool/main/o/osinfo-db/osinfo-db_0.20210215-1_all.deb
$ sudo dpkg -i osinfo-db*.deb

$ osinfo-query os -f short-id | grep ubuntu20
 ubuntu20.04
 ubuntu20.10

Does osinfo-db 20210809 detect debian11 ?

$ dpkg -s osinfo-db | grep -i version
Version: 0.20210809-1

$ osinfo-query os -f short-id | grep debian11
(none)        

What about osinfo-db 20210903 from upstream ?

$ curl -L -O https://releases.pagure.org/libosinfo/osinfo-db-20210903.tar.xz
$ sudo apt -y install osinfo-db-tools (if you haven't installed)
$ sudo osinfo-db-import osinfo-db-20210903.tar.xz

$ osinfo-query os -f short-id | grep debian11
 debian11            

osinfo-db 20210903 from debian

As of 2021.09.09, I see osinfo-db 20210903 pkg from osinfo-db page

To install the pkg and check debian11:

$ curl -L -O http://http.us.debian.org/debian/pool/main/o/osinfo-db/osinfo-db_0.20210903-1_all.deb
$ sudo apt -y install ./osinfo-db_0.20210903-1_all.deb
$ dpkg -s osinfo-db | grep -i version
Version: 0.20210903-1
$ osinfo-query os -f short-id | grep debian11
 debian11

How many VMs am I running?

vm is a custom script based on virsh, virt-install, virt-clone etc.

As of 2021.08.29, I'm running 15 VMs:

$ vm list
 Id   Name     State
------------------------
 30   arch21   running
 9    c79      running
 10   c84      running
 13   d09      running
 15   d10vm    running
 35   d11vm    running
 2    f32      running
 12   f34      running
 4    lm19     running
 5    lm20     running
 14   mj21     running
 16   mx19     running
 33   nl84     running
 41   u18vm    running
 42   u20vm    running

$ vm list | grep running | wc -l
15

Usage shows less than 3% of total 8 CPUs and less than half of the total 64 GBs of memory.

How to use virsh to create snapshots

Here is how to use virsh to create snapshots

See Also


CategorySystemAdministration | CategoryVirtualization | CategorySoftware