在CentOS7系统中部署WebVirtMgr可以实现对虚拟机的图形化Web管理,极大简化KVM虚拟机的日常运维操作,本文将详细介绍WebVirtMgr在CentOS7上的完整部署流程、核心功能及使用注意事项。

环境准备与依赖安装
部署WebVirtMgr前需确保系统已安装KVM虚拟化环境,首先通过virt-host-checktool检查宿主机是否支持虚拟化,若输出包含"KVM acceleration can be used"则表示支持,接着安装必要的依赖包:yum install -y epel-release qemu-kvm libvirt virt-install bridge-utils python-pip python-libvirt,其中libvirt是虚拟化管理的核心工具,bridge-utils用于配置网络桥接,python-pip用于后续安装Python依赖。
安装完成后启动并启用相关服务:systemctl start libvirtd && systemctl enable libvirtd,检查libvirtd服务状态确保正常运行,同时验证KVM模块是否加载:lsmod | grep kvm,若输出显示kvm_intel或kvm_amd则表示模块已正确加载。
WebVirtMgr服务部署
WebVirtMgr基于Django框架开发,需通过pip安装Python依赖,首先升级pip至最新版本:pip install --upgrade pip,然后安装WebVirtMgr及其依赖:pip install git+https://github.com/retspen/webvirtmgr.git,安装过程可能需要较长时间,请耐心等待。
创建WebVirtMgr数据库用户并授权:mysql -u root -p执行以下SQL语句:
CREATE DATABASE webvirtmgr; GRANT ALL PRIVILEGES ON webvirtmgr.* TO 'webvirtmgr'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; EXIT;
初始化数据库:python /usr/local/lib/python2.7/site-packages/webvirtmgr/manage.py syncdb,根据提示创建超级管理员账户,设置静态文件目录权限:chown -R nginx:nginx /var/www/webvirtmgr。

Nginx与配置文件部署
安装Nginx作为Web服务器:yum install -y nginx,创建WebVirtMgr配置文件/etc/nginx/conf.d/webvirtmgr.conf如下:
server {
listen 80;
server_name your_server_ip;
root /var/www/webvirtmgr;
location /static/ {
expires max;
client_max_body_size 10M;
client_body_buffer_size 128k;
proxy_read_timeout 60s;
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
alias /var/www/webvirtmgr/static/;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 10M;
}
}
启动Nginx并设置开机自启:systemctl start nginx && systemctl enable nginx,检查防火墙规则,确保80端口已开放:firewall-cmd --permanent --add-service=http && firewall-cmd --reload。
SSH密钥配置与连接测试
WebVirtMgr通过SSH协议管理虚拟机,需配置免密登录,在管理节点生成SSH密钥:ssh-keygen -t rsa,连续回车使用默认路径,将公钥复制到KVM宿主机:ssh-copy-id root@your_kvm_host_ip,测试SSH连接是否成功:ssh root@your_kvm_host_ip,无需密码即可登录表示配置正确。
登录WebVirtMgr Web界面(http://your_server_ip),使用之前创建的超级管理员账户登录,进入"Connection"页面添加KVM宿主机信息,填写主机名、IP地址、SSH端口及用户名(root),点击"Connect"测试连接,若显示"Connection successful"则表示配置成功。
核心功能使用指南
WebVirtMgr提供虚拟机全生命周期管理功能,在"Instances"页面可以创建新虚拟机,选择操作系统镜像(需提前上传至/var/lib/libvirt/images/),配置CPU、内存、磁盘等资源,支持快照管理,可随时创建虚拟机状态快照,故障时快速回滚。

存储管理功能支持查看和添加存储池,默认使用default存储池(位于/var/lib/libvirt/images/),网络管理可配置虚拟网络桥接,建议创建独立的NAT网络或桥接物理网络以实现虚拟机外部访问。
常见问题处理
部署过程中若出现权限问题,可尝试以下命令修复:chown -R root:root /var/www/webvirtmgr && chown -R nginx:nginx /var/www/webvirtmgr/media,若SSH连接失败,检查/etc/ssh/sshd_config中PermitRootLogin是否设置为yes,并重启sshd服务:systemctl restart sshd。
FAQs
Q1: WebVirtMgr登录后显示空白页面如何解决?
A1: 通常是由于静态文件未正确加载导致,执行以下命令收集静态文件:python /usr/local/lib/python2.7/site-packages/webvirtmgr/manage.py collectstatic --noinput,并重启Nginx服务:systemctl restart nginx,同时检查Nginx错误日志:/var/log/nginx/error_log定位具体问题。
Q2: 如何通过WebVirtMgr控制台访问虚拟机?**
A2: 需在KVM宿主机安装novnc依赖:yum install -y novnc python-websockify,重启libvirtd服务:systemctl restart libvirtd,在WebVirtMgr界面点击虚拟机名称进入详情页,点击"Console"按钮即可打开基于VNC的Web控制台,若无法连接,检查防火墙是否开放5900-5999端口范围。