鏈接:https://hub.docker.com/r/unws/webvirtmgr/
Webvirtmgr Dockerfile
拉起鏡像並創建webvirtmgr用戶和組(注意uid和guid必須為1010和容器內保持一致)
docker pull primiano/docker-webvirtmgr sudo groupadd -g 1010 webvirtmgr sudo useradd -u 1010 -g webvirtmgr -s /sbin/nologin -d /data/vm webvirtmgr sudo chown -R webvirtmgr:webvirtmgr /data/vm
運行容器
docker run -d -p 8080:8080 -p 6080:6080 --name webvirtmgr -v /data/vm:/data/vm primiano/docker-webvirtmgr
安裝完成后,需要進入容器,執行:
sed -i 's/172.17.42.1/0.0.0.0/g' /webvirtmgr/vrtManager/create.py
修改后才能用noVNC連接。
在被管理的宿主機上做如下配置
libvirtd configuration on the host
1、不存在則手動創建
cat /etc/default/libvirt-bin start_libvirtd="yes" libvirtd_opts="-d -l"
2、其中:
listen_addr推薦0.0.0.0,監聽所有網卡
unix_sock_group為kvm主機的libvirt/libvirtd組,可用cat /etc/group查看,默認管理用戶為root,如宿主機使用非root用戶,可以修改unix_sock_group = "對應用戶組"
cat /etc/libvirt/libvirtd.conf listen_tls = 0 listen_tcp = 1 listen_addr = "172.17.42.1" ## 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"
3、#號代表需要注釋的地方
cat /etc/libvirt/qemu.conf # This is obsolete. Listen addr specified in VM xml. # vnc_listen = "0.0.0.0" vnc_tls = 0 # vnc_password = ""
4、重啟libvirtd服務
systemctl restart libvirtd
5、
配置webvirtmgr
使用docker命令登錄到webvirtmgr容器中,修改admin用戶密碼,初始密碼為:admin/1234
cd /webvirtmgr python manage.py changepassword admin
6、切換至webvirtmgr用戶
su - webvirtmgr -s /bin/bash
7、在webvirtmgr用戶下,創建到kvm主機的免登錄
ssh-keygen touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config chmod 0600 ~/.ssh/config
8、然后copy到kvm主機
ssh-copy-id root@192.168.122.100
登錄webvirtmgr
打開瀏覽器,訪問http://192.168.122.100:8080
輸入用戶密碼即可
添加connection時,要保證已經配置容器中webvirtmgr用戶到目標機用戶的ssh免登錄
注意:防火牆需要開放8080和6080,如開放端口后通過novnc連接kvm虛擬機仍提示連接超時,可嘗試先關閉防火牆后重啟容器再測試下是否可以正常通過novnc連接
由於在防火牆運行狀態時,虛擬機xml配置文件中,vnc監聽0.0.0.0時會導致novnc連接虛擬機失敗,此時將listen監聽改為本地即可
以上配置需要在虛擬機關機狀態下修改
參考:https://www.jianshu.com/p/8be6b46843e5
https://blog.csdn.net/rariki/article/details/85156633