centos7+qemu-kvm+webvirtmgr搭建kvm管理平台(一)

by 追梦人博客

追梦人博客 / 2017-07-30 01:56

     之前买了个7欧的vps,只有一个ip,想着弄个小鸡管理面板来开nat小鸡,因为之前用过Proxmox ve,所以首选方案是pve面板(参见《Proxmox ve创建虚拟机、设置NAT端口转发教程》:https://www.zmrbk.com/post-3245.html),但是这个面板在只有一个ip的情况下弄转发比较麻烦,虽然以前成功过,但这次按照教程来是活不成功,最后放弃了。后来又试了下esxi,这个操作起来不熟悉,折腾半天也没结果,后来在群友@Dane的推荐下试了kvm+webvirtmgr,并在其指导下避免走了很多坑,才有了这篇教程。

    本次测试基于centos x86_64,其实qemu-kvm是底层,webvirtmgr是控制面板,这两个可以互相分开的,只要建立一个管理通道连接就行了。首先说下kvm的安装,在母鸡上执行以下命令

1.安装kvm软件包、一些管理工具包,开启kvm服务,并且设置其开机自动启动

yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install bridge-utils novnc -y  systemctl start libvirtd  systemctl enable libvirtd    

2.准备 ISO 和 img 目录(后面会说到用处)

mkdir -p /home/kvm/img  mkdir -p /home/kvm/iso  cd /home/kvm/iso  wget http://mirrors.ircam.fr/pub/CentOS/7.3.1611/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso  

3.kvm 服务器(客服端)配置与 webvirtmgr 服务器(服务端)连接

curl http://retspen.github.io/libvirt-bootstrap.sh | sudo sh  

4.TCP 连接配置(https://github.com/retspen/webvirtmgr/wiki/Setup-TCP-Authorization

sudo saslpasswd2 -a libvirt zmrbk.com                  // 添加用户和设置密码。  sudo sasldblistusers2 -f /etc/libvirt/passwd.db   // 查看用户  virsh -c qemu+tcp://127.0.0.1/system nodeinfo     // 验证设置  

以上在母鸡上就把kvm设置好了,以下是安装webvirtmgr,可以和母鸡装在一起,也可以装在另外的vps上。

前提说明:webvirtmgr要依靠nginx来反代他的服务,群友dane是基于oneinstack来搭建nginx环境的,我是基于宝塔面板搭建的,代码会有少许差异,想少走弯路的可以按照教程环境来,以下是在装好oneinstack后的脚本设置。

安装 WebVirtMgr

# 安装 python 设置 Django 环境

sudo yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor  sudo yum -y install gcc python-devel  sudo pip install numpy  
cd /data/wwwroot/  git clone git://github.com/retspen/webvirtmgr.git  cd webvirtmgr  sudo pip install -r requirements.txt  ./manage.py syncdb  ./manage.py collectstatic  

# 设置 Nginx

vim /usr/local/nginx/conf/nginx.conf  

在server 段后追加

  server {      listen 80; //80端口也可以改为其他端口,加强控制面板安全性      server_name $hostname;        location /static/ {          root /data/wwwroot/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;      }    }  
chown -R www.www /data/wwwroot/webvirtmgr  nginx -t  sudo service nginx restart  

# 设置 Supervisor

vim /etc/supervisord.d/webvirtmgr.ini     //这句命令只适用于centos7.x,centos6.x的完全不一样,之前自己安装过程中遇到的坑之一  
[program:webvirtmgr]  command=/usr/bin/python /data/wwwroot/webvirtmgr/manage.py run_gunicorn -c /data/wwwroot/webvirtmgr/conf/gunicorn.conf.py  directory=/data/wwwroot/webvirtmgr  autostart=true  autorestart=true  logfile=/var/log/supervisor/webvirtmgr.log  log_stderr=true  user=www    [program:webvirtmgr-console]  command=/usr/bin/python /data/wwwroot/webvirtmgr/console/webvirtmgr-console  directory=/data/wwwroot/webvirtmgr  autostart=true  autorestart=true  stdout_logfile=/var/log/supervisor/webvirtmgr-console.log  redirect_stderr=true  user=www  
systemctl restart supervisord  systemctl enable supervisord  

Shared via Inoreader

centos7+qemu-kvm+webvirtmgr搭建kvm管理平台(一)

留下评论