乐趣区

关于linux:KVM-WEB管理工具-WebVirtMgr

一、webvirtmgr 介绍及环境阐明

舒适提醒:装置 KVM 是须要 2 台都操作的,因为咱们是打算将 2 台都设置为宿主机所有都须要装置 KVM 相干组件

github 地址 https://github.com/retspen/we…

WebVirtMgr 是一个基于 libvirt 的 Web 界面,用于治理虚拟机。它容许您创立和配置新域,并调整域的资源分配。VNC 查看器为来宾域提供残缺的图形控制台。KVM 是目前惟一反对的虚拟机管理程序。

查看服务器版本号

[root@webc ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

内核版本

[root@webc ~]# uname -r
3.10.0-1160.42.2.el7.x86_64

敞开 Selinux & 防火墙

[root@webc ~]# systemctl stop firewalld
[root@webc ~]# systemctl disable firewalld
[root@webc ~]# setenforce 0
setenforce: SELinux is disabled
[root@webc ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

更新软件包并装置 epel 扩大源

[root@webc ~]# yum update
[root@webc ~]# yum install epel*

查看 python 版本

[root@webc ~]# python -V
Python 2.7.5
[root@webc ~]#

查看 KVM 驱动是否加载

[root@webc ~]# lsmod | grep kvm
kvm_intel             188740  0
kvm                   637515  1 kvm_intel
irqbypass              13503  1 kvm
[root@webc ~]#
[root@webc ~]#
[root@webc ~]# modprobe -a kvm
[root@webc ~]# modprobe -a kvm_intel
[root@webc ~]#

免密配置

[root@webc ~]# ssh-keygen
[root@webc ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.104

二、装置 KVM

装置 KVM 依赖包及管理工具

kvm 属于内核态,不须要装置。然而须要一些治理工具包

[root@webc ~]# yum install qemu-img qemu-kvm qemu-kvm-tools virt-manager virt-viewer virt-v2v virt-top libvirt libvirt-Python libvirt-client python-virtinst bridge-utils tunctl
[root@webc ~]# yum install -y virt-install
[root@webc ~]#
[root@webc ~]# systemctl start libvirtd.service
[root@webc ~]# systemctl enable libvirtd.service
[root@webc ~]#
[root@webc ~]# cd cby/kvm/
[root@webc kvm]#
[root@webc kvm]#
[root@webc kvm]#  git clone https://github.com/palli/python-virtinst.git
[root@webc kvm]# cd python-virtinst/
[root@webc python-virtinst]#  python setup.py install
[root@webc python-virtinst]# virt-install
[root@webc python-virtinst]# yum install bridge-utils
[root@webc python-virtinst]#
[root@webc python-virtinst]# vim /etc/sysconfig/network-scripts/ifcfg-br0
[root@webc python-virtinst]#
[root@webc python-virtinst]#
[root@webc python-virtinst]#
[root@webc python-virtinst]#
[root@webc python-virtinst]#
[root@webc python-virtinst]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.49
NETMASK=255.225.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
[root@webc python-virtinst]# brctl show
bridge name bridge id       STP enabled interfaces
br-0d093958d245     8000.0242d5824d14   no      
br-2e2d3c481379     8000.0242884030e2   no      
br-36a6ad3375a8     8000.0242d7d7f1ef   no      
br-66a9675a6dd5     8000.024248a61c72   no      
br-b7daf4844ff7     8000.024263dd4715   no      
br-deba197eb09e     8000.0242b290e104   no      
br0     8000.000000000000   no      
docker0     8000.0242858c017c   no      vethe14f7ac
docker_gwbridge     8000.0242588c6db0   no      
virbr0      8000.5254009ba65a   yes     virbr0-nic
[root@webc python-virtinst]# ln -s /usr/libexec/qemu-kvm /usr/sbin/

三、WebVirtMgr 装置

装置 pip、git 及 supervisor && Nginx

WebVirtMgr 只在治理端装置

[root@webc ~]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor gcc python-devel

应用 pip 装置 Python 扩大程序库

[root@webc ~]# pip install numpy

git 克隆配置并运行 WebVirMgr

[root@webc ~]# cd cby/
[root@webc cby]# mkdir kvm
[root@webc cby]# cd kvm
[root@webc kvm]# pwd
/root/cby/kvm
[root@webc kvm]#
[root@webc kvm]# git clone git://github.com/retspen/webvirtmgr.git
正克隆到 'webvirtmgr'...
remote: Enumerating objects: 5614, done.
remote: Total 5614 (delta 0), reused 0 (delta 0), pack-reused 5614
接管对象中: 100% (5614/5614), 2.97 MiB | 748.00 KiB/s, done.
解决 delta 中: 100% (3606/3606), done.
[root@webc kvm]#
[root@webc kvm]#
[root@webc kvm]# cd webvirtmgr
[root@webc webvirtmgr]# pip install -r requirements.txt
# 初始化环境
[root@webc webvirtmgr]# ./manage.py syncdb

#配置 Django 动态页面
[root@webc webvirtmgr]# ./manage.py collectstatic

启动 WebVirMgr

前台启动 WebVirMgr,默认是 Debug 模式同时日志打印在前台

用户名和明码是咱们刚刚创立的

下载 Nginx

[root@webc webvirtmgr]# cd ..
[root@webc kvm]# ls
webvirtmgr
[root@webc kvm]#
[root@webc kvm]# mkdir nginx
[root@webc kvm]# cd nginx
[root@webc nginx]# wget https://nginx.org/download/nginx-1.20.1.tar.gz
[root@webc nginx]# tar xf nginx-1.20.1.tar.gz
[root@webc nginx]# cd nginx-1.20.1/
[root@webc nginx-1.20.1]#

批改 nginx 配置文件

[root@webc conf]# vim nginx.conf
[root@webc conf]#
[root@webc conf]# cat nginx.conf
user  root;
worker_processes  1;

events {worker_connections  1024;}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       90;
        server_name  192.168.1.104;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            #root   html;
            #index  index.html index.htm;
            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 /root/cby/kvm/webvirtmgr;
            expires max;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {root   html;}
    }
}
[root@webc conf]#

装置 Nginx

[root@webc nginx-1.20.1]# yum install -y gcc glibc gcc-c++ prce-devel openssl-devel pcre-devel
[root@webc nginx-1.20.1]# useradd -s /sbin/nologin nginx -M
[root@webc nginx-1.20.1]# ./configure --prefix=/root/cby/kvm/nginx/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
[root@webc nginx-1.20.1]# make && make install

启动 Nginx

[root@webc nginx-1.20.1]# cd /root/cby/kvm/nginx/sbin/
[root@webc sbin]# /root/cby/kvm/nginx/sbin/nginx -t
nginx: the configuration file /root/cby/kvm/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /root/cby/kvm/nginx//conf/nginx.conf test is successful
[root@webc sbin]# /root/cby/kvm/nginx/sbin/nginx

应用 systemctl 启停服务

[root@webc sbin]# cat > /etc/supervisord.d/webvirtmgr.ini << EOF
[program:webvirtmgr]
command=/usr/bin/python /root/cby/kvm/webvirtmgr/manage.py run_gunicorn -c /root/cby/kvm/webvirtmgr/conf/gunicorn.conf.py
directory=/root/cby/kvm/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=root
 
[program:webvirtmgr-console]
command=/usr/bin/python /root/cby/kvm/webvirtmgr/console/webvirtmgr-console
directory=/root/cby/kvm/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=root
EOF

启动 supervisor

[root@webc webvirtmgr]# systemctl daemon-reload
[root@webc webvirtmgr]# systemctl stop supervisord
[root@webc webvirtmgr]# systemctl start supervisord

查看是否启动胜利

[root@webc webvirtmgr]# supervisorctl status
webvirtmgr                       RUNNING   pid 23783, uptime 0:00:11
webvirtmgr-console               RUNNING   pid 23782, uptime 0:00:11
[root@webc webvirtmgr]#

四、Web 界面配置 webvirtmgr

4.1 增加主机设置存储

1.Add Connection 增加宿主机 (即 KVM 主机)

2. 点击 SSH 连贯

3.Label 为主机名,必须为主机名做免密

4.IP 为宿主机 IP

5. 用户名为服务器用户名

6. 点击增加

Linux 运维交换社区

Linux 运维交换社区,互联网新闻以及技术交换。

43 篇原创内容

公众号

本文应用 文章同步助手 同步

退出移动版