2. kvm虚拟化管理平台WebVirtMgr部署
Posted yanmingbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2. kvm虚拟化管理平台WebVirtMgr部署相关的知识,希望对你有一定的参考价值。
WebVirtMgr特点
- 操作简单,易于使用
- 通过libvirt的API接口对kvm进行管理
- 提供对虚拟机生命周期管理
- WebVirtMgr 功能
宿主机管理支持以下功能
- CPU利用率
- 内存利用率
- 网络资源池管理
- 存储资源池管理
- 虚拟机镜像
- 虚拟机克隆
- 快照管理
- 日志管理
- 虚机迁移
虚拟机管理支持以下功能
- CPU利用率
- 内存利用率
- 光盘管理
- 关/开/暂停虚拟机
- 安装虚拟机
- VNC console连接
- 创建快照
开始部署
一、基础环境
#配置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
#kvm虚拟化环境
[root@didi ~]# rpm -qa virt*
virt-what-1.18-4.el7.x86_64
virt-manager-common-1.5.0-7.el7.noarch
virt-manager-1.5.0-7.el7.noarch
virt-install-1.5.0-7.el7.noarch
#关闭防火墙SELinux
systemctl stop firewalld && systemctl disable firewalld
#
二、安装WebVirtMgr
1、安装依赖包
[root@didi ~]# yum install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx -y
2、从git-hub中下载相关的webvirtmgr代码
[root@didi ~]# cd /usr/local/src/
[root@didi src]# git clone git://github.com/retspen/webvirtmgr.git
3、安装webvirtmgr
[root@didi src]# cd webvirtmgr/
[root@openstack webvirtmgr]# pip install -r requirements.txt
4、检查sqlite3 (备注:自带不需要安装,导入模块检查一下。)
[root@didi webvirtmgr]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> exit()
5、初始化账号
[root@didi ~]# cd /usr/local/src/webvirtmgr
[root@didi webvirtmgr]# ./manage.py syncdb
You just installed Djangos auth system, which means you dont have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use root): admin
Email address:
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 6 object(s) from 1 fixture(s)
6、拷贝代码到/var/www/下
[root@didi ~]# mkdir -pv /var/www
[root@didi ~]# cp -Rv /usr/local/src/webvirtmgr /var/www/webvirtmgr
7、添加ssh免密
[root@didi ~]# ssh-keygen -t rsa //产生公私钥
[root@didi ~]# ssh-copy-id 192.168.18.254 //由于这里webvirtmgr和kvm服务部署在同一台机器,所以这里本地信任。如果kvm部署在其他机器,那么这个是它的ip
[root@didi ~]# ssh 192.168.18.254 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:60
8、编辑nginx配置文件
在nginx.conf中添加include /etc/nginx/conf.d/*.conf;
[root@didi ~]# cd /etc/nginx/
[root@didi nginx]# mv nginx.conf /tmp
[root@didi nginx]# cp nginx.conf.default nginx.conf
[root@didi nginx]# sed -ri /default_type/ainclude /etc/nginx/conf.d/*.conf;
9、添加/etc/nginx/conf.d/webvirtmgr.conf配置文件
[root@didi nginx]# vim /etc/nginx/conf.d/webvirtmgr.conf
server
listen 8889 default_server;
server_name $hostname;
#access_log /var/log/nginx/webvirtmgr_access_log;
location /static/
root /var/www/webvirtmgr/webvirtmgr; # or /srv instead of /var
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;
# 重启nginx服务
[root@didi ~]# systemctl restart nginx && systemctl enable nginx
10、文件授权
[root@didi ~]# chown -R nginx:nginx /var/www/webvirtmgr
11、设置 supervisor (如果iptables防火墙开启的话,就必须要开通80、8000、6080端口访问)
[root@didi ~]# vim /etc/supervisord.conf //在文件末尾添加,注意将默认的python改为python2,因为上面只有用这个版本执行才不报错!
[program:webvirtmgr]
command=/usr/bin/python2 /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py //启动8000端口
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=nginx
[program:webvirtmgr-console]
command=/usr/bin/python2 /var/www/webvirtmgr/console/webvirtmgr-console //启动6080端口(这是控制台vnc端口)
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx
#检查
[root@didi ~]# vim /var/www/webvirtmgr/conf/gunicorn.conf.py //确保下面bind绑定的是本机的8000端口,这个在nginx配置中定义了,被代理的端口
bind = 127.0.0.1:8000
#设置开机启动
[root@didi nginx]# systemctl enable supervisord.service
#设置开机加载
[root@didi nginx]#vim /etc/rc.local /usr/sbin/setsebool httpd_can_network_connect true
#重启服务
[root@didi nginx]# systemctl restart supervisord && systemctl enable supervisord
[root@didi nginx]# systemctl status supervisord
#查看端口 检查6080和8000是否启动
[root@didi nginx]# netstat -lnpt
11、设置nginx程序账户的免密钥
解决措施:
1)在webvirtmgr服务器(服务端)上(这里kvm和WebVirtMgr部署在同一台机器上)创建nginx用户家目录(默认nginx服务安装时是没有nginx家目录的),生成nginx的公私钥
[root@didi]# cd /home/
[root@didi home]# mkdir nginx
[root@didi home]# chown nginx.nginx nginx/
[root@didi home]# chmod 700 nginx/ -R
[root@tdidi home]# su - nginx -s /bin/bash
-bash-4.1$ ssh-keygen #期间输入yes后直接回车,回车
-bash-4.1$ touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config
-bash-4.1$ chmod 0600 ~/.ssh/config
#在webvirtmgr服务器(服务端)上(这里kvm和WebVirtMgr部署在同一台机器上),将nginx用户的ssh-key上传到kvm服务器上(这里kvm和WebVirtMgr部署在同一台机器上)
[root@didi ~]# su - nginx -s /bin/bash
-bash-4.1$ ssh-copy-id root@192.168.18.254
Warning: Permanently added 192.168.18.254 (RSA) to the list of known hosts.
root@192.168.18.254s password:
Now try logging into the machine, with "ssh root@192.168.18.254", and check in:
.ssh/authorized_keys
#在kvm(客服端)服务器上(这里kvm和WebVirtMgr部署在同一台机器上)配置 libvirt ssh授权
[root@didi ~]# vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
[Remote libvirt SSH access]
Identity=unix-user:root #注意这里采用的是root用户
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
[root@didi ]# chown -R root.root /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
#重启服务
[root@didi ]# systemctl restart nginx
[root@didi ]# systemctl restart libvirtd
12、访问地址:http://192.168.18.254/login/
账户信息 admin/adminroot
添加kvm虚拟机
配置完成后就会显示虚拟机信息
以上是关于2. kvm虚拟化管理平台WebVirtMgr部署的主要内容,如果未能解决你的问题,请参考以下文章
Kvm --05 密码保护:Kvm管理之WebVirtMgr