文章都可以转载、引用,标明转载出处即可。

KVM虚拟化管理平台部署

KVM Mr.c 3514℃ 0评论

  在之前的文章中写了如何部署KVM环境以及创建VM虚拟机 《 KVM虚拟化安装 》
命令操作虽然直接明了,但总归不是那么的方便快捷,并且管理也不方便,查了下关于KVM的管理平台系统,发现了WebVirtMgr 这个开源软件,简单写下安装过程和遇着的问题。
  参考自云栖社区博客: https://yq.aliyun.com/articles/36240?utm_source=tuicool&utm_medium=referral 但是自己按照教程安装都会可能出现问题,这里记录下:

系统环境以及准备工作:

1.centos 7_64位系统,关闭selinux 。
2.已经成功安装KVM并创建了VM虚拟机。
3.安装epel-release 源。
4.安装对应依赖关系,下载WebVirtMgr 并且安装nginx作为反向代理。

一:WebVirtMgr 安装部署

1.安装Python环境、pip 工具以及nginx
epel源建议使用国内镜像: 《centos 更换yum源》

[root@kvm home] yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx   #nginx没有过多的需求,所以yum安装即可

2.安装WebVirtMgr

[root@kvm home] git clone git://github.com/retspen/webvirtmgr.git
[root@kvm home] cd webvirtmgr
[root@kvm webvirtmgr] pip install -r requirements.txt

#上面的命令会安装Django 等组件,默认下载速度较慢,建议先替换pip源为国内源:pip更换为国内源
如果有出现下面提示信息是由于sqlite 没有安装,需要安装后再重新编译Python

django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
[root@kvm7 home] yum -y install sqlite-devel

同步数据库

[root@kvm webvirtmgr] ./manage.py syncdb  #会提示创建Django 连接数据库账号密码等信息
[root@kvm webvirtmgr] ./manage.py collectstatic #同步项目文件
[root@kvm webvirtmgr] ./manage.py createsuperuser   #配置webvirtmgr 登录账号

二:nginx 配置

[root@kvm webvirtmgr] vim /etc/nginx/conf.d/webvirtmgr.conf

server {
    listen 80 ;
    server_name kvm.cnyunwei.cc;
    access_log /var/log/nginx/webvirtmgr_access_log; 

    location /static/ {
        root /home/webvirtmgr/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 $scheme;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        client_max_body_size 1024M; 
    }
}
[root@kvm webvirtmgr] nginx -t  #检测配置是否正确
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@kvm webvirtmgr] service nginx restart

三:Supervisor 配置

  Python 项目默认是无法直接在后台运行的,可以通过Supervisor 管理程序进行控制。
  centos 7安装的Supervisor 配置可以在/etc/supervisord.d/创建xxx.ini 文件,centos 6直接在/etc/supervisord.conf 中增加配置。

[root@kvm webvirtmgr] vim /etc/supervisord.d/webvirtmgr.ini
[program:webvirtmgr]
command=/usr/bin/python /home/webvirtmgr/manage.py run_gunicorn -c /home/webvirtmgr/conf/gunicorn.conf.py
directory=/home/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=nginx

[program:webvirtmgr-console]
command=/usr/bin/python /home/webvirtmgr/console/webvirtmgr-console
directory=/home/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx

  之前反复测试,supervisor 进程无法启动该项目,Python 没有监听端口,查看日志也没有具体的报错信息,查了很久再看配置信息的时候发现user=nginx 这个值,想到了webvirtmgr 项目的权限是root 账户,nginx 账户没有执行权限,重置账户为nginx后解决。

[root@kvm home]  chown nginx.nginx -R webvirtmgr/
[root@kvm home]  service supervisord restart

查看端口监听情况:

[root@kvm  home]  netstat -tunlp | grep python
tcp        0      0 127.0.0.1:8000              0.0.0.0:*                   LISTEN      1463/python         
tcp        0      0 0.0.0.0:6080                0.0.0.0:*                   LISTEN      1462/python

四:配置webvirtmgr 连接KVM服务器

webvirtmgr 连接kvm有两种方式:SSH和TCP
TCP模式最为简单方便,这里已tcp连接为例。
1. 设置libvirtd 服务监听
在kvm服务器上取消libvirtd 服务配置文件LIBVIRTD_ARGS 前的注释 /etc/sysconfig/libvirtd

[root@kvm home]  cp /etc/sysconfig/libvirtd{,_bak}  #先备份原文件再操作
[root@kvm home]  vim /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"

2.配置libvirt 服务 /etc/libvirt/libvirtd.conf 允许通过tcp方式通讯,修改以下参数:

[root@kvm home] cp  /etc/libvirt/libvirtd.conf{,_bak}  #先备份原文件再操作
[root@kvm home] vim /etc/libvirt/libvirtd.conf
listen_tcp = 1  #允许tcp监听
tcp_port = "16509"  #开放tcp端口
listen_addr = "0.0.0.0"  #监听地址修改为0.0.0.0
auth_tcp = sasl  #配置tcp通过sasl认证
listen_tls = 0  #取消CA认证功能

3.启动服务、创建libvirt管理用户

[root@kvm home] service libvirtd start
[root@kvm home] saslpasswd2 -a libvirt admin #创建用户admin 

  在修改配置文件的时候出现过用sed命令直接替换配置文件后导致libvirt无法启动,还好之前备份了文件,通过vim 编辑器手动查找修改后正常启动,所以对配置文件的编辑修改前进行备份是多么重要的事情。
访问测试:http://kvm.cnyunwei.cc/
webvirtmgr

转载请注明:菜鸟运维网 » KVM虚拟化管理平台部署

喜欢 (3)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址