KVM Webvirtmgr部署並使用

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 跳過磁盤檢查即可

在這裏插入圖片描述

正常安裝即可如下

在這裏插入圖片描述
在這裏插入圖片描述

實驗完畢!!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章