KVM管理工具 WebVirtMgr


WEB管理工具 WebVirtMgr

WebVirtMgr是一個基於libvirt的Web界面,用於管理虛擬機。它允許您創建和配置新域,並調整域的資源分配。VNC查看器為來賓域提供完整的圖形控制台。KVM是目前唯一支持的虛擬機管理程序。

基礎環境

[root@BJtest32 ~]# cat /etc/redhat-release 
CentOS release 6.6 (Final)
[root@BJtest32 ~]# uname -r
2.6.32-504.el6.x86_64
[root@BJtest32 ~]# getenforce 
Disabled
查看是否支持虛擬化
cat /proc/cpuinfo | grep -E 'vmx|svm'
查看KVM 驅動是否加載
lsmod | grep kvm
如果沒有加載kvm驅動,利用命令加載驅動
modprobe -a kvm
modprobe -a kvm_intel

hosts免密登錄

kvm所用的所有服務器都需要互相做免密
如果只有一台機器,把本機的id_rsa.pub 拷貝到authorized_keys里

[root@BJtest32 ~]# ssh-keygen 
[root@BJtest32 ~]# -copy-id -i .ssh/id_rsa.pub root@$IP

依賴包及管理工具

kvm屬於內核,不需要安裝。但是需要一些管理工具包
yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager python-virtinst libvirt-client virt-viewer qemu-kvm-tool
libvirt 用來管理kvm
yum install -y virt-install
安裝管理KVM命令

WebVirtMgr 安裝

官方地址
WebVirtMgr只在管理端安裝

[root@BJtest32 data]# yum -y install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@BJtest32 data]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx
[root@BJtest32 data]# git clone git://github.com/retspen/webvirtmgr.git
[root@BJtest32 data]# cd webvirtmgr
[root@BJtest32 webvirtmgr]# pip install -r requirements.txt # or python-pip (RedHat, Fedora, CentOS, OpenSuse)
#requirements.txt主要是用於記錄所有依賴包及其精確的版本號。以便新環境部署
[root@BJtest32 webvirtmgr]# ./manage.py syncdb
WARNING:root:No local_settings file found.
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table servers_compute
Creating table instance_instance
Creating table create_flavor
You just installed Django's auth system, which means you don't have any superusers defined.
這里需要我們輸入Yes,配置管理員用戶
配置信息如下

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes         #是否現在創建管理員用戶
Username (leave blank to use 'root'): root              #用戶名稱
Email address: cyh@i4t.com                              #郵箱地址 (可以不填)
Password:                                               #管理員用戶密碼
Password (again):                                       #重復輸入密碼
Superuser created successfully.                         #創建成功
Installing custom SQL ...
Installing indexes ...
Installed 6 object(s) from 1 fixture(s)

#配置Django 靜態頁面
[root@BJtest32 webvirtmgr]# ./manage.py collectstatic
輸入Yes即可

#如果還需要再添加管理員用戶,執行下面的命令

#前台啟動WebVirMgr,默認是Debug模式同時日志打印在前台
[root@BJtest32 webvirtmgr]# ./manage.py createsuperuser
以上執行Python腳本必須在webvirtmgr目錄

啟動WebVirMgr

前台啟動WebVirMgr,默認是Debug模式同時日志打印在前台

[root@BJtest32 webvirtmgr]# ./manage.py runserver 0:8000
IP+8000端口訪問

image.png
用戶名和密碼就是剛剛創建的
image.png
登錄成功,沒有報錯。
現在在服務器端Ctrl+C退出
安裝Nginx使用supervisor進行管理。

配置Nginx

Nginx安裝 安裝完成后修改配置文件

[root@BJtest32 conf.d]# cat webvirtmgr.conf 
server {
    listen       80;
    server_name  webvirtmgr.nfsnobody.com;
    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 $remote_addr;
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    client_max_body_size 5120M;
      }
location /static/ {
    root /data1/webvirtmgr;
    expires max;
  }
}

[root@BJtest32 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@BJtest32 conf.d]# /etc/init.d/nginx restart

配置supervisor

supervisorctl所有的操作都需要在webvirtmgr的安裝目錄下,否則會提示找不到文件
WebVirtMgr默認使用supervisor進行管理(啟動停止服務) 所以我們需要配置supervisor

安裝supervisor

[root@BJtest32 ~]# yum remove supervisor -y
[root@BJtest32 ~]# pip install supervisor==3.1.3
[root@BJtest32 ~]# echo_supervisord_conf > /etc/supervisor/supervisord.conf
#修改配置文件
[root@BJtest32 ~]# vim /etc/supervisord.conf
#新增以下內容
[include]
files = /etc/supervisord.d/*.conf

#創建目錄                                                                       
[root@BJtest32 ~]# mkdir /etc/supervisord.d/


#配置service
[root@BJtest32 ~]# vi /etc/init.d/supervisord
#!/bin/bash
#
# supervisord   This scripts turns supervisord on
#
# Author:       Mike McGrath <mmcgrath@RedHat.com> (based off yumupdatesd)
#
# chkconfig:    - 95 04
#
# description:  supervisor is a process control utility.  It has a web based
#               xmlrpc interface as well as a few other nifty features.
# processname:  supervisord
# config: /etc/supervisor/supervisord.conf
# pidfile: /tmp/supervisord.pid
#
# source function library
. /etc/rc.d/init.d/functions
PIDFILE=/tmp/supervisord.pid

RETVAL=0
start() {
    echo -n $"Starting supervisord: "
    daemon "supervisord --pidfile=$PIDFILE -c /etc/supervisord.conf"
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/supervisord
}
stop() {
    echo -n $"Stopping supervisord: "
    killproc supervisord
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/supervisord
}
restart() {
    stop
    start
}
case "$1" in
  start)
    start
    ;;
  stop) 
    stop
    ;;
  restart|force-reload|reload)
    restart
    ;;
  condrestart)
    [ -f /var/lock/subsys/supervisord ] && restart
    ;;
  status)
    status supervisord
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
    exit 1
esac
exit $RETVAL
[root@BJtest32 ~]# chmod 755 /etc/init.d/supervisord
[root@BJtest32 ~]# chkconfig supervisord on

supervisord 啟動成功后,可以通過 supervisorctl 客戶端控制進程,啟動、停止、重啟。
運行 supervisorctl 命令,不加參數,會進入 supervisor 客戶端的交互終端,並會列出當前所管理的所有進程。

創建supervisor配置文件

#創建配置文件
[root@BJtest32 ~]# vi /etc/supervisord.d/webvirtmgr.conf
[program:webvirtmgr]
command=/usr/bin/python /data/webvirtmgr/manage.py run_gunicorn -c /data/webvirtmgr/conf/gunicorn.conf.py
directory=/data/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=root

[program:webvirtmgr-console]
command=/usr/bin/python /data/webvirtmgr/console/webvirtmgr-console
directory=/data/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=root

#重啟supervisor
[root@BJtest32 ~]# /etc/init.d/supervisord status
supervisord (pid  6877) is running...
[root@BJtest32 ~]# /etc/init.d/supervisord restart
[root@BJtest32 ~]# supervisorctl status
webvirtmgr                       RUNNING   pid 8773, uptime 0:01:12
webvirtmgr-console               RUNNING   pid 8772, uptime 0:01:12

Web界面配置webvirtmgr

1.Add Connection 添加宿主機(即KVM主機)
2.點擊SSH連接
3.Label 為主機名,必須為主機名做免密
4.IP 為宿主機IP
5.用戶名為服務器用戶名
6.點擊添加
image.png
添加完后點擊主機名激活
image.png
虛機實例就是已經存在的虛擬機
image.png
創建存儲KVM鏡像目錄
KVM中的虛擬機都是以鏡像的方式進行存儲

image.png
根據自己服務器的分區靈活選擇位置
名稱: 這里的名稱顯示的名稱
路徑: 即存儲KVM虛擬機路徑
image.png
創建完后需要創建鏡像(相當於虛擬硬盤大小)
image.png
創建鏡像

下面“Metadata”前的小方框一定不能勾選(默認是勾選的,要去掉!)
這里添加的“鏡像”就是所創建虛擬機的硬盤空間
虛擬機所占用的空間就是這個“鏡像”所在的宿主機下路徑所在的分區空間(也就是/home/kvm/kvmstorage/,即宿主機的home分區)


image.png


創建完畢
image.png

上傳鏡像

創建完虛擬硬盤,我們在創建一個IOS鏡像目錄
點擊>存儲池>NEW_Storage
image.png
點擊上傳鏡像
image.png
選中鏡像選擇上傳
image.png
除了在瀏覽器上傳,還可以直接下載阿里雲鏡像站鏡像。只要鏡像在/opt下就會被獲取

wget -P /opt/ https://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

如果使用Web界面上傳鏡像nginx出現413的情況請修改client_max_body_size參數

















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM