KVM Webvirtmgr部署并使用

Webvirtmgr简介

一个Web图形化管理并创建KVM虚拟机管理软件,通过这个软件可以更改的给用户一个创建并管理虚拟机的页面,比virt-manager友好许多,并可以通过Web页面管理

实验环境

主机名IP角色
Webmgr192.168.1.14Webvirtmgr
KVM192.168.1.15KVM虚拟化服务
Webmgr主机要安装依赖包,必须联网,并添加一块30G磁盘,如何联网我这里就不说了。。。
KVM主机开启虚拟化,内存给大一些

在这里插入图片描述

关闭所有主机selinux,并关闭防火墙 !!不然后面会有问题

如果你的虚拟机重启了,需要重新执行一遍下面命令,不然会出问题

[root@webmgr ~]# systemctl stop firewalld
[root@webmgr ~]# setenforce 0
[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# setenforce 0

一.安装并部署Webvirtmgr

下面所有操作,都在Webmgr主机执行

一定要连上网虚拟机

1)安装依赖

不用删掉原来的yum,光盘没有就去网上找了

[root@webmgr ~]# mount /dev/cdrom /mnt/
[root@webmgr ~]# cd /root/
[root@webmgr ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@webmgr ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@webmgr ~]# yum install gcc python-devel openssl-devel -y
[root@webmgr ~]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx

#配一下pip的源,这个文件原来没有
[root@webmgr ~]# mkdir ~/.pip/
[root@webmgr ~]# vim ~/.pip/pip.conf
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
#手动安装一下 numpy ,因为centos7的python为2.7版的,不是最新
[root@webmgr ~]# wget https://pypi.tuna.tsinghua.edu.cn/packages/c4/33/8ec8dcdb4ede5d453047bbdbd01916dbaccdb63e98bba60989718f5f0876/numpy-1.16.2-cp27-cp27mu-manylinux1_x86_64.whl#sha256=fb3c83554f39f48f3fa3123b9c24aecf681b1c289f9334f8215c1d3c8e2f6e5b
[root@webmgr ~]#  pip install numpy-1.16.2-cp27-cp27mu-manylinux1_x86_64.whl

#导入模块
[root@webmgr ~]# python 
Python 2.7.5 (default, Aug  7 2019, 00:51:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> exit()

下面这个下的时候,可能会卡住,如果卡了,用我提供的百度云,上传到此目录
链接:https://pan.baidu.com/s/1Qy149h_eMqIP_dQr_JMBjQ
提取码:nln1

[root@webmgr ~]# git clone git://github.com/retspen/webvirtmgr.git

在这里插入图片描述
注意看下面图片,输出黄色字体不是报错不影响

[root@webmgr ~]# cd webvirtmgr/
[root@webmgr webvirtmgr]# pip install -r requirements.txt

在这里插入图片描述

2)账户配置

登陆Webbvirtmgr用户

这个是普通的用户

[root@webmgr webvirtmgr]# ./manage.py syncdb
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建管理员用户

也是登陆Webvirtmgr,权限更高
[root@webmgr webvirtmgr]# ./manage.py createsuperuser
方法和创建普通用户一样
在这里插入图片描述

3)nginx和supervisor

通过Web方式肯定需要网站服务

[root@webmgr webvirtmgr]# cd /root/
[root@webmgr ~]# mkdir /var/www
[root@webmgr ~]# cp -r webvirtmgr/ /var/www/
[root@webmgr ~]# chown -R nginx:nginx /var/www/
[root@webmgr ~]# cd /etc/nginx/

[root@webmgr nginx]# vim nginx.conf
把server 段整个都注释掉,在前面加上#号即可,注意 { 也加上 如下
在这里插入图片描述
新写一个配置文件,这个配置文件会被引用

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

server {
    listen 80 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 $scheme;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        client_max_body_size 1024M; # Set higher depending on your needs
    }
}
[root@webmgr nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@webmgr nginx]# nginx 
supervisor

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

可以这么理解,这个Webvirtmgr需要通过这个服务启动
[root@webmgr ~]# vim /etc/supervisord.conf
在文件末尾添加如下内容,注意要新起一行

[program:webvirtmgr]
command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py
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/python /var/www/webvirtmgr/console/webvirtmgr-console
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx
[root@webmgr ~]# systemctl start supervisord
[root@webmgr ~]# systemctl status supervisord

在这里插入图片描述
8000是Webvirtmgr网页端口就是nginx映射的端口,6080端口是它的console控制台端口,操控KVM主机用这个端口

[root@webmgr ~]# netstat -anpt | grep 8000
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      42587/python        
[root@webmgr ~]# netstat -anpt | grep 6080
tcp        0      0 0.0.0.0:6080            0.0.0.0:*               LISTEN      42586/python  

http://192.168.1.14/login/
用那个上面创建的admin用户,登陆就可以,和管理员用户权限一样
在这里插入图片描述
一开始是没有连接的,我们一会去建立连接
在这里插入图片描述

4)NFS

一会可以把磁盘文件,通过nfs放到Webmgr主机上存储(当然其它专门做存储的主机也可以),在这个主机上做nfs存储,一会KVM去挂载这个目录

[root@webmgr ~]# mkfs.xfs /dev/sdb
[root@webmgr ~]# vim /etc/fstab
 #添加一行 
/dev/sdb        /disk   xfs     defaults 0  0
[root@webmgr ~]# mount -a
[root@webmgr ~]# yum -y install nfs-utils
[root@webmgr ~]# vim /etc/exports
/disk *(rw,sync,no_root_squash)

[root@webmgr ~]# systemctl start rpcbind
[root@webmgr ~]# systemctl start nfs

#去kvm主机,看一下可以查看到吗
[root@kvm ~]# mount /dev/cdrom /mnt/
[root@kvm ~]# yum -y install nfs-utils 
[root@kvm ~]# showmount -e 192.168.1.14
Export list for 192.168.1.14:
/disk *
5)配置和KVM主机免密登陆

因为Webvirtmgr通过nginx运行也就是运行用户是nginx,就是说通过nginx用户发送操作指令,所以需要nginx和KVM服务主机实现免密登陆

[root@webmgr ~]# su - nginx -s /bin/bash
-bash-4.2$ ssh-keygen -t rsa -P ''
#回车即可

-bash-4.2$ ssh-copy-id root@192.168.1.15
#输入1.15主机的root密码

-bash-4.2$ exit

在这里插入图片描述

二.配置KVM节点

以下操作都是是在KVM主机1.15上做的
1)KVM环境和网桥
[root@kvm ~]# mount /dev/cdrom /mnt/
[root@kvm ~]# yum -y install libvirt qemu-kvm virt-viewer -y

#做一下软连接,不然后面虚拟机可能创建失败
[root@kvm ~]# ln -s /usr/libexec/qemu-kvm /usr/local/bin/

#网络配置
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=16dbf5aa-1642-4741-a8f6-7a59118ec4f1
DEVICE=ens33
#IPADDR=192.168.1.15
#PREFIX=24
ONBOOT=yes
BRIDGE="br0"

[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=none
IPADDR=192.168.1.15
NETMASK=255.255.255.0

[root@kvm ~]# systemctl restart network
[root@kvm ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c296b329d	no		ens33
[root@kvm ~]# systemctl start libvirtd
2)存放镜像的目录并上传镜像

复制时间长,请等待,有了屏幕输出才可以

[root@kvm ~]# mkdir /iso
[root@kvm ~]# dd if=/dev/sr0 of=/iso/centos7.iso
记录了8730624+0 的读入
记录了8730624+0 的写出
4470079488字节(4.5 GB)已复制,297.252 秒,15.0 MB/秒

#创建挂载点存放磁盘文件,一会通过Webvirtmgr会自动挂载NFS
[root@kvm ~]# mkdir /kvmdisk

三.Webvirtmgr创建虚拟机

回到刚刚Webvirtmgr,或者重新登陆http://192.168.1.14/logs/
1)和KVM主机建立连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)创建网络池

就是创建出来的虚拟机的网卡
在这里插入图片描述

先选择最下面的网络类型为BRIDGE,就会变成我下面界面,然后设置项

在这里插入图片描述

3)创建存储池

在这里插入图片描述

创建两个,一个是存放镜像的,这个目录需要提前存在,我们已经创建了

在这里插入图片描述

第二个是存放磁盘文件,通过nfs,会自动挂载到KVM主机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时到KVM服务主机上,nfs已经自动挂载

[root@kvm iso]# df -hT  | grep kvmdisk
192.168.1.14:/disk      nfs4       30G   36M   30G    1% /kvmdisk
虚拟机磁盘文件创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后再次点击添加就可以选择格式了,我们不进行创建选择关闭,如下

在这里插入图片描述

3)创建虚拟机

在这里插入图片描述
有的时候点击虚拟机实例会报错,直接最点击右上角的这个按钮也可以创建
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

把镜像加上,才可以在这里插入图片描述
开机并查看

在这里插入图片描述

打开控制台查看情况

在这里插入图片描述

安装即可

这里不存在virt-manager默认键盘不可以用的问题,可以说是非常强大了这个管理工具
在这里插入图片描述
然后安装的时候会这样,这个是磁盘检查,但是因为虚拟环境中磁盘环境有些问题,这个很好解决
在这里插入图片描述
只要跳过这个磁盘检查就可以了

在这里插入图片描述

再打开控制台,到这一步checking的时候在它报错之前赶快直接按键盘左上角的esc 跳过磁盘检查即可

在这里插入图片描述

正常安装即可如下

在这里插入图片描述
在这里插入图片描述

实验完毕!!!!!!!!

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值