KVM 管理工具WebVirtMgr

全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2022年09月28日 1:11:20
  • 所属分类:Docker, Linux
  • 阅读次数:624次阅读
  • 标签:

一、介绍

github地址https://github.com/retspen/webvirtmgr

WebVirtMgr是一个基于libvirt的Web界面,用于管理虚拟机。它允许您创建和配置新域,并调整域的资源分配。VNC查看器为来宾域提供完整的图形控制台。KVM是目前唯一支持的虚拟机管理程序。

IP                         安装软件

192.168.209.133 KVM、

192.168.209.134 KVM、WebVirtMgr、nginx

二、查看本机环境

1.查看服务器版本号,建议使用7
cat /etc/redhat-release 
2.内核版本
uname -r
3.关闭Selinux & 防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
4.设置Yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
5.查看是否支持虚拟化
cat /proc/cpuinfo | grep -E 'vmx|svm'
6.查看KVM 驱动是否加载
lsmod | grep kvm
如果没有加载kvm驱动,利用命令加载驱动
modprobe -a kvm
modprobe -a kvm_intel
7.本次Python版本
python -V
8、本地解析
vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.209.133 abcdocker-node
192.168.209.134 abcdocker-kvm
9、免密
管理端生成
ssh-keygen
设置免密,因为自己也同时提供KVM虚拟机,所以也需要配置免密
ssh-copy-id -i .ssh/id_rsa.pub root@abcdocker-kvm
ssh-copy-id -i .ssh/id_rsa.pub root@abcdocker-node

三、安装KVM

2.1 安装KVM依赖包及管理工具

# kvm属于内核态,不需要安装。但是需要一些管理工具包
yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager python-virtinst libvirt-client virt-viewer qemu-kvm-tool
# 启动librirt
systemctl start libvirtd.service
systemctl enable libvirtd.service

四、WebVirtMgr 安装

4.1 安装依赖包

# 管理端安装
yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor gcc python-devel
# 使用pip安装Python扩展程序库
pip install numpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

4.2 git克隆配置并运行WebVirMgr

# 创建data目录,将WebVirtMgr移动到data目录,同时创建KVM存储目录
mkdir /data/kvm -pv
# 克隆项目
cd /data
git clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr
pip install -r requirements.txt  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
# 说明:requirements.txt主要是用于记录所有依赖包及其精确的版本号。以便新环境部署
# 初始化环境
./manage.py syncdb
## 这里需要我们输入Yes,配置管理员用户
配置信息如下
Would you like to create one now? (yes/no): yes         #是否现在创建管理员用户
Username (leave blank to use 'root'): root              #用户名称
Email address:                                          #邮箱地址 (可以不填)
Password:                                               #管理员用户密码
Password (again):                                       #重复输入密码
Superuser created successfully.                         #创建成功
# 配置Django 静态页面
./manage.py collectstatic 
输入Yes即可
# 如果还想继续添加管理员用户,可以执行下面的命令
./manage.py createsuperuser

4.3 启动WebVirMgr

前台启动WebVirMgr,默认是Debug模式同时日志打印在前台
./manage.py runserver 0:8000

访问:http://192.168.209.134:8000

image.png

4.4 安装Nginx

1.安装依赖
yum install -y gcc glibc gcc-c++ prce-devel openssl-devel pcre-devel
2.安装编译Nginx
cd /root/
wget http://nginx.org/download/nginx-1.16.1.tar.gz
useradd -s /sbin/nologin nginx -M 
tar xf nginx-1.16.1.tar.gz && cd nginx-1.16.1.tar.gz
./configure --prefix=/usr/local/nginx-1.16.1 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
make && make install
ln -s /usr/local/nginx-1.16.1 /usr/local/nginx
# 修改配置文件
cd /usr/local/nginx/conf
vim nginx.conf

worker_processes  1;
user nginx;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  kvm.i4t.com;
      
        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 5120M;
          }
    location /static/ {
        root /data/webvirtmgr;
        expires max;
      }
    }

}
# 启动Nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx

4.5 创建supervisor配置文件

WebVirtMgr默认使用supervisor进行管理(启动停止服务)

cat > /etc/supervisord.d/webvirtmgr.ini << EOF
[program:webvirtmgr]
command=/usr/bin/python /data/webvirtmgr/manage.py run_gunicorn -c /data/webvirtmgr/conf/gunicorn.conf.py
directory=/data/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=root

[program:webvirtmgr-console]
command=/usr/bin/python /data/webvirtmgr/console/webvirtmgr-console
directory=/data/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=root
EOF
# 启动
systemctl start supervisord 
systemctl enable supervisord
# 检查
supervisorctl status
# 重启所以(非执行)
supervisorctl restart all

五、Web界面配置webvirtmgr

5.1 添加主机设置虚拟硬盘

1.Add Connection 添加宿主机(即KVM主机)
2.点击SSH连接
3.Label 为主机名,必须为主机名做免密
4.IP 为宿主机IP
5.用户名为服务器用户名
6.点击添加

image.png

image.png

image.png

image.png

# 创建镜像目录
mkdir /data/kvm

image.png

image.png

5.2 上传镜像
创建一个IOS镜像目录

image.png

image.png

# 下载镜像
wget -P /opt/ https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso

虚拟机直接导入镜像

image.png

[root@kvm ~]# dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-DVD-1810.iso
8962048+0 records in
8962048+0 records out
4588568576 bytes (4.6 GB) copied, 40.6923 s, 113 MB/s
[root@kvm ~]# ll /opt/
total 4481024
-rw-r--r-- 1 root root 4588568576 Jun 29 09:50 CentOS-7-x86_64-DVD-1810.iso
# 刷新页面就可以看到了

image.png

  • web页面上传报错413

解决:
grep -rn "client_max_body_size" /usr/local/nginx/conf/nginx.conf
30: client_max_body_size 5120M; 
# 平滑重启
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

5.3 创建桥接网卡
默认KVM虚拟机的网络为NAT,只可以宿主机访问
温馨提示:以下操作有风险,需要做好网络断开的准备!

1.编辑宿主机网卡
## 注释原来的IP,添加一行BRIDGE=br0
[root@kvm ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
#IPADDR=192.168.209.134
#NETMASK=255.255.255.0
#GATEWAY=192.168.209.254
#DNS1=180.76.76.76
#DNS2=223.5.5.5
BRIDGE=br0
2.添加bro虚拟网卡
## br0网卡除了添加基础信息,还需要将IP和DNS添加上即可
[root@kvm ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
DEVICE=br0
BOOTPROTO=none
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.209.134
NETMASK=255.255.255.0
GATEWAY=192.168.209.254
DNS1=180.76.76.76
DNS2=223.5.5.5
3.重启网卡
systemctl restart network
4.验证
ip a

image.png

  • 添加桥接网卡

# 说明
如果添加还没开启vSwithch会提示internal error: Unable to add port vnet0 to OVS bridge br0
vSwitch(Virtual Switch)指虚拟交换机或虚拟网络交换机,工作在二层数据网络,通过软件方式实现物理交换机的二层(和部分三层)网络功能。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!