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

osinfo-db 20230308 for debian12

I just noticed osinfo-db 20230308 contains an incorrect short-id

To install osinfo-db 20230308 to local from upstream:

$ wget -c https://releases.pagure.org/libosinfo/osinfo-db-20230308.tar.xz
$ sudo osinfo-db-import -v --local osinfo-db-20230308.tar.xz
$ ls -l /etc/osinfo/os/debian.org/
...
debian-12.xml
...
$ osinfo-query os -f short-id | grep debian
 ...
 debian10
 debian11
 debian11 <-- we need to fix this

To fix incorrect short-id in debian-12.xml:

$ sudo vi /etc/osinfo/os/debian.org/debian-12.xml
<short-id>debian12</short-id>

$ osinfo-query os -f short-id | grep debian
 ...
 debian10
 debian11
 debian12 <-- now it's been fixed

BTW, you can see three different path of osinfo-db in your system.

I recommend to use local instead of system when you install it from upstream.

$ osinfo-db-path --system
/usr/share/osinfo
$ osinfo-db-path --local
/etc/osinfo
$ osinfo-db-path --user
/home/tchung/.config/osinfo

osinfo-db 20230518 for debian12

To install osinfo-db 20230518 to local from upstream:

$ wget -c https://releases.pagure.org/libosinfo/osinfo-db-20230518.tar.xz
$ sudo osinfo-db-import -v --local osinfo-db-20230518.tar.xz
$ osinfo-query os -f short-id | egrep debian | egrep '10|11|12'
 debian10            
 debian11            
 debian12 <-- fixed already

How to use virsh to create snapshots

Here is how to use virsh to create snapshots

See Also


CategorySystemAdministration | CategoryVirtualization | CategorySoftware