KVM Webvirtmgr部署并使用

Tama ·
更新时间:2024-11-10
· 674 次阅读

Webvirtmgr简介

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

实验环境
主机名 IP 角色
Webmgr 192.168.1.14 Webvirtmgr
KVM 192.168.1.15 KVM虚拟化服务
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 跳过磁盘检查即可

在这里插入图片描述

正常安装即可如下

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

实验完毕!!!!!!!!
作者:!#阿杰邦尼



kvm

需要 登录 后方可回复, 如果你还没有账号请 注册新账号