导读 | 命令操作虽然直接明了,但总归不是那么的方便快捷,并且管理也不方便,查了下关于KVM的管理平台系统,发现了WebVirtMgr 这个开源软件,简单写下安装过程和遇着的问题。 |
2.已经成功安装KVM并创建了VM虚拟机。
3.安装epel-release 源。
4.安装对应依赖关系,下载WebVirtMgr 并且安装nginx作为反向代理。
epel源建议使用国内镜像: 《centos 更换yum源》
[root@kvm home] yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx #nginx没有过多的需求,所以yum安装即可
[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 登录账号
[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
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有两种方式:SSH和TCP,TCP模式最为简单方便,这里已tcp连接为例。
在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"
/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认证功能
[root@kvm home] service libvirtd start [root@kvm home] saslpasswd2 -a libvirt admin #创建用户admin
在修改配置文件的时候出现过用sed命令直接替换配置文件后导致libvirt无法启动,还好之前备份了文件,通过vim 编辑器手动查找修改后正常启动,所以对配置文件的编辑修改前进行备份是多么重要的事情。
本文原创地址:https://www.linuxprobe.com/kvm-manage-platform-deploy.html编辑:xiangping wu,审核员:逄增宝