WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常kvm的管理操作变的更加的可视化。

WebVirtMgr特点:
操作简单,易于使用
通过libvirt的API接口对kvm进行管理
提供对虚拟机生命周期管理
WebVirtMgr 功能

宿主机管理支持以下功能
CPU利用率
内存利用率
网络资源池管理
存储资源池管理
虚拟机镜像
虚拟机克隆
快照管理
日志管理
虚机迁移

虚拟机管理支持以下功能
CPU利用率
内存利用率
光盘管理
关/开/暂停虚拟机
安装虚拟机
VNC console连接
创建快照


服务端配置

在Centos 7的系统上,已安装好nginx和数据库,如果没有的话要安装nginx,数据库没有指定就会用自带的数据库。

安装数据库(可选)

数据库安装

cd /data/
wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
cd sqlite-3.5.6/
./configure --disable-tcl  
make
make install 

安装webvirtmgr

yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum -y install python-pip python-devel libvirt-python libxml2-python python-websockify supervisor
pip install numpy

#把webvirtmgr安装在网站目录下
cd /data/wwwroot/default/
git clone https://github.com/retspen/webvirtmgr.git
cd webvirtmgr

pip install -r requirements.txt

#同步数据库,输入yes,默认root账户,输入邮箱,输入密码。
./manage.py syncdb

#创建网站静态文件,输入yes
./manage.py collectstatic

#创建账户,输入yes,默认root账户,输入邮箱,输入密码。
./manage.py createsuperuser

配置nginx

修改nginx.conf文件看看有没有include vhost/*.conf;这一行,没有就新加。
在nginx.conf所在目录下的vhost(没有该文件夹就新建)下,vim webvirtmgr.conf
写入以下内容:

server {
listen 8066 default_server;    #端口默认为80,我改了8066

server_name $hostname;
#access_log /var/log/nginx/webvirtmgr_access_log;

location /static/ {
root /data/wwwroot/default/webvirtmgr;   #刚刚安装在了/data下,就设置这里为webvirtmgr的根目录
expires max;
}

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:$server_port;
proxy_set_header X-Forwarded-Proto $remote_addr;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
client_max_body_size 1024M;      # Set higher depending on your needs
}
}

更改目录权限

cat /etc/passwd看看用户,可能是nginx,大多数情况下是www
chown -R www:www /data/webvirtmgr
cd ~

创建配置文件

vim /etc/supervisord.conf

[program:webvirtmgr]
#启动8000端口,修改为你的路径,注意Python的路径是不是这个
command=/usr/bin/python2 /data/wwwroot/default/webvirtmgr/manage.py run_gunicorn -c /data/wwwroot/default/webvirtmgr/conf/gunicorn.conf.py
directory=/data/wwwroot/default/webvirtmgr   #修改为你的路径
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=www     #修改用户

[program:webvirtmgr-console]
#启动6080端口(这是控制台vnc端口),,修改为你的路径
command=/usr/bin/python2 /data/wwwroot/default/webvirtmgr/console/webvirtmgr-console                               
directory=/data/wwwroot/default/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=www     #修改用户

确保下面bind绑定的是本机的8000端口,这个在nginx配置中定义了被代理的端口是8000

grep '^bind =' /data/wwwroot/default/webvirtmgr/conf/gunicorn.conf.py
#输出如下,注意上一行命令/data前有一个空格的
bind = '127.0.0.1:8000'

开启服务

systemctl restart nginx.service
systemctl start supervisord.service
systemctl enable supervisord.service

后台执行
nohup /usr/bin/python2 /data/wwwroot/default/webvirtmgr/manage.py run_gunicorn -c /data/wwwroot/default/webvirtmgr/conf/gunicorn.conf.py &

客户端配置(被管理的KVM宿主机)

webvirtmgr支持tcp,ssh,TLS,socker连接,常用的就是tcp和ssh。
如果是ssh连接要配置免密钥登陆,帮助说明里有提到:authorization key

对于一开始没有配置ssh免密登陆的,也为了方便管理authorization key,可以不适用ssh,改用tcp来管理kvm主机;一共要修改两个文件,这来两个文件默认是全部注释,没有被启用的项,直接在最底下增加代码就行。

vim /etc/libvirt/libvirtd.conf

listen_tls = 0
listen_tcp = 1            #启用tcp
tcp_port = "16509"        #端口默认是这个,可以修改
listen_addr = "0.0.0.0"   #可以指定服务端IP才能访问,这里是任何主机都能访问
auth_tcp = "none"


vim /etc/sysconfig/libvirtd
LLIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf    #路径就是上一个文件的路径
LIBVIRTD_ARGS="--listen"

保存退出,重启服务:systemctl restart libvirtd.service
防火墙放行16509端口,8066(web)视情况而定。

打开浏览器访问:http://192.168.10.109:8066 登陆账号密码就是安装时**./manage.py createsuperuser**的账户密码。

增加主机
webvirtmgr
通过公网IP打开管理界面,又想用webvirtmgr自带的vnc连接管理机器,可以修改FQDN/IP为公网地址

参考:http://blog.csdn.net/xiegh2014/article/details/53053420


文章作者: Leo
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeoLan的小站
虚拟化 kvm
喜欢就支持一下吧