Now we will add a way to run virtual machines and control them via web interface
Run apt install cpu-checker
Verify that your system can run kvm
kvm-ok
Install and verify
apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
systemctl enable libvirtd-tcp.socket
Edit ** /usr/lib/systemd/system/libvirtd.service **
Wants=libvirtd.socket
Wants=libvirtd-ro.socket
+ Wants=libvirtd-tcp.socket
+ After=mnt-data.mount
+ Wants=mnt-data.mount
Wants=libvirtd-admin.socket
Wants=systemd-machined.service
Run usermod -aG libvirt main usermod -aG kvm main
Modify /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0" ## Address of docker0 veth on the host
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none"
auth_tls = "none"
Modify /etc/libvirt/qemu.conf vnclisten = "0.0.0.0" vnctls = 0 # vnc_password = ""
Disable apparmor ?????
ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
ufw allow 16509/tcp
Run
mkdir -p /mnt/data/apps/libvirt/storage
mkdir -p /mnt/data/apps/libvirt/isos
chmod 777 /mnt/data/apps/libvirt
chmod 777 /mnt/data/apps/libvirt/storage
chmod 777 /mnt/data/apps/libvirt/isos
Setup a default storage
virsh pool-define-as --name default --type dir --target /mnt/data/apps/libvirt/storage
virsh pool-autostart default
virsh pool-start default
virsh pool-list
Remove a vm
virsh list --all
virsh destroy [name]
virsh undefine [name]
Remove a pool
virsh pool-list
virsh pool-destroy [name]
virsh pool-undefine [name]
Run
mkdir -p /mnt/data/apps/webvirtcloud/data
mkdir -p /mnt/data/apps/webvirtcloud/.ssh
chmod 777 /mnt/data/apps/webvirtcloud
chmod 777 /mnt/data/apps/webvirtcloud/data
chmod 777 /mnt/data/apps/webvirtcloud/.ssh
Run
git clone https://github.com/kendarorg/docker-webvirtcloud
cd docker-webvirtcloud
docker build -t kendar/webvirtcloud .
Run
docker run -d \
--restart unless-stopped \
-p 8000:80 \
-p 6080:6080 \
-e VNC_PORT=6080 \
--network dockernet \
-v /srv/webvirtcloud/data:/mnt/data/apps/webvirtcloud/data \
-v /srv/webvirtcloud/ssh:/mnt/data/apps/webvirtcloud/.ssh \
--name webvirtcloud \
kendar/webvirtcloud .
Assign the user main to all
And add users at please
Enter on docker console modify the end of file /srv/webvirtcloud/webvirtcloud/settings.py (use your master dn or root user and the correct root dn)
LDAP_ENABLED = True
LDAP_URL = 'openldap'
LDAP_PORT = 389
USE_SSL = False
LDAP_MASTER_DN = 'cn=admin,dc=kendar,dc=org'
LDAP_MASTER_PW = 'secret'
LDAP_ROOT_DN = 'dc=kendar,dc=org'
LDAP_USER_UID_PREFIX = 'cn'
LDAP_SEARCH_GROUP_FILTER_ADMINS = 'memberOf=cn=admins,cn=staff,cn=webvirtcloud,ou=groups,dc=kendar,dc=org'
LDAP_SEARCH_GROUP_FILTER_STAFF = 'memberOf=cn=staff,cn=webvirtcloud,ou=groups,dc=kendar,dc=org'
LDAP_SEARCH_GROUP_FILTER_USERS = 'memberOf=cn=webvirtcloud,ou=groups,dc=kendar,dc=org'