一个Web图形化管理并创建KVM虚拟机管理软件,通过这个软件可以更改的给用户一个创建并管理虚拟机的页面,比virt-manager友好许多,并可以通过Web页面管理
主机名 | IP | 角色 |
---|---|---|
Webmgr | 192.168.1.14 | Webvirtmgr |
KVM | 192.168.1.15 | KVM虚拟化服务 |
如果你的虚拟机重启了,需要重新执行一遍下面命令,不然会出问题
[root@webmgr ~]# systemctl stop firewalld
[root@webmgr ~]# setenforce 0
[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# setenforce 0
一.安装并部署Webvirtmgr
下面所有操作,都在Webmgr主机执行
一定要连上网虚拟机
不用删掉原来的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
方法和创建普通用户一样
通过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用户,登陆就可以,和管理员用户权限一样
一开始是没有连接的,我们一会去建立连接
一会可以把磁盘文件,通过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主机建立连接
就是创建出来的虚拟机的网卡
BRIDGE
,就会变成我下面界面,然后设置项
3)创建存储池
创建两个,一个是存放镜像的,这个目录需要提前存在,我们已经创建了
第二个是存放磁盘文件,通过nfs,会自动挂载到KVM主机
此时到KVM服务主机上,nfs已经自动挂载
[root@kvm iso]# df -hT | grep kvmdisk
192.168.1.14:/disk nfs4 30G 36M 30G 1% /kvmdisk
虚拟机磁盘文件创建
有的时候点击虚拟机实例会报错,直接最点击右上角的这个按钮也可以创建
这里不存在virt-manager默认键盘不可以用的问题,可以说是非常强大了这个管理工具
然后安装的时候会这样,这个是磁盘检查,但是因为虚拟环境中磁盘环境有些问题,这个很好解决
只要跳过这个磁盘检查就可以了
esc
跳过磁盘检查即可
正常安装即可如下