KVM 虚拟化管理平台 WebVirtMgr 部署实战
1. 前言
当Kvm宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为Kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看Kvm宿主机的情况和操作。
WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个Kvm管理平台,提供对宿主机和虚机的统一管理,它有别于Kvm自带的图形管理工具(virtual machine manager),让Kvm管理变得更为可视化,对中小型Kvm应用场景带来了更多方便。
WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常Kvm的管理操作变的更加的可视化。
2. 特点
- 操作简单,易于使用
- 通过
libvirt
的API接口对Kvm进行管理 - 提供对虚拟机生命周期管理
3. 功能
- 宿主机管理支持以下功能
CPU利用率 |
- 虚拟机管理支持以下功能
CPU利用率 |
4. 安装部署
WebVirtMgr官网: https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr
注意:
WebVirtMgr只提供对Kvm的管理功能,所以需要提前安装部署好KVM虚拟化的环境,才能保证可以正常使用WebVirtMgr这款工具。
4.1 安装WebVirtMgr相关依赖
首先要安装Kvm虚拟化环境,这里我将WebVirtMgr服务器和Kvm服务器放在同一台机器上部署的,即单机部署。
4.1.1 安装epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo |
4.1.2 安装依赖及环境
yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx |
4.1.3 安装编译软件
yum -y install gcc python-devel |
4.1.4 安装numpy
numpy 是 Python 进行科学计算的基础软件包。
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple |
4.2 安装Python需求
4.2.1 下载WebVirtMgr
包
[root@kvm-server-01 ~]# git clone git://github.com/retspen/webvirtmgr.git |
4.2.2 安装 WebVirtMgr 的python依赖
[root@kvm-server-01 ~]# cd webvirtmgr/ |
4.2.3 检查 sqlite3
自带不需要安装,导入模块检查一下。
[root@kvm-server-01 webvirtmgr]# python |
4.2.4 初始化账号
#给脚本添加执行权限 |
4.2.5 生成配置文件
[root@kvm-server-01 webvirtmgr]# ./manage.py collectstatic |
4.2.6 添加其他超级用户
#这个是管理员账号,用上面的admin和这个账号都可以登录 |
4.3 配置Nginx
警告:通常,WebVirtMgr仅可从端口8000上的本地主机访问。通过配置nginx使用反向代理,可以使用80端口直接访问,这样访问不怎么安全。
设置加密连接的方式,使用8000端口访问。
[root@kvm-server-01 ~]# ssh 10.0.0.11 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:6080
4.3.1 修改Nginx配置文件
- 配置WebVirtMgr的Nginx配置文件
[root@kvm-server-01 webvirtmgr]# vim /etc/nginx/conf.d/webvirtmgr.conf |
- 修改
/etc/nginx/nginx.conf
文件,注释server部分 - 重启nginx服务,设置开机自启动
[root@kvm-server-01 ~]# systemctl restart nginx.service |
4.3.2 移动 webvirtmgr 软件包目录
[root@kvm-server-01 ~]# mkdir /var/www |
4.4 配置 supervisord
4.4.1 添加webvirtmgr.ini文件
- 创建
/etc/supervisord.d/webvirtmgr.ini
文件
[root@kvm-server-01 ~]# cat /etc/supervisord.d/webvirtmgr.ini |
- 启动守护进程supervisord
[root@kvm-server-01 ~]# systemctl start supervisord.service |
4.4.2 检查服务端口
[root@kvm-server-01 ~]# netstat -tln | grep -E '6080|8000' |
4.5 使用浏览器访问
浏览器输入网址:http://10.0.0.11
只有超级管理员登陆后才能看到“基础构架”窗口
4.6 远程连接设置
使用tcp进行对远程libvirtd进行连接访问的配置
4.6.1 修改文件 libvirtd
,用来启用tcp的端口
[root@kvm-server-01 ~]# grep -Ev "^$|#" /etc/sysconfig/libvirtd |
4.6.2 修改文件/etc/libvirt/libvirtd.conf
[root@kvm-server-01 ~]# grep -Ev "^$|#" /etc/libvirt/libvirtd.conf |
4.6.3 重启libvirtd
[root@kvm-server-01 ~]# systemctl restart libvirtd.service |
4.6.4 查看端口16509是否启动
[root@kvm-server-01 ~]# netstat -tln | grep 16509 |
4.6.5 在source host连接dest host远程libvirtd查看信息
[root@kvm-server-01 ~]# virsh -c qemu+tcp://10.0.0.11/system |
4.6.6 WEB端进行TCP连接
4.6.7 添加多台进行管理
4.7 更新控制台显示
解决控制台连接失败的问题,如下图:
4.7.1 同步 webvirtmgr 的源码
在webvirtmgr目录下进行 git pull
拉取最新源码,同步当前目录。
[root@kvm-server-01 ~]# cd /var/www/webvirtmgr |
4.7.2 生成配置文件
[root@kvm-server-01 webvirtmgr]# ./manage.py collectstatic |
4.7.3 重启 supervisord 服务
[root@kvm-server-01 webvirtmgr]# systemctl restart supervisord.service |
再次使用控制台:
5. 界面基础操作
5.1 创建存储池
点击前面创建的宿主机,进入虚拟机部署界面
点击“存储池”按钮,创建存储池(即创建磁盘镜像存放的位置)
注意:
创建存储池时,首先要在宿主机上创建一个目录,然后在”路径“设置栏中添加该目录。
把提前下载好的centos镜像拷贝到上面创建的存储池目录下;这里可以放不同版本的系统镜像(windows也可以),以便在下面安装过程中选择不同镜像安装系统
5.2 添加磁盘镜像
5.3 宿主机网卡的桥接模式设置
注意:
下面的“设备”一项要填写桥接的物理网卡(即br0对应的那个网卡,这里填的是宿主机之前的网卡eth0) 网关地址也一定要填写正确,不然虚拟机和宿主机同网段机器则会网络不通。(如下这一步其实就是创建桥接的网卡配置,也可以在服务器上执行命令
virsh iface-bridge eth0 br0
创建)
5.4 创建网络池
5.5 创建虚拟主机实例
注意:
这里的镜像需要手动上传到服务器的存储目录下。
5.6 删除虚拟主机实例
5.7 克隆虚拟及实例操作
进入虚机配置界面,在克隆配置项,为新的虚机的“名字”,“MAC地址”,“磁盘镜像”进行设置
登录之后修改IP地址即可