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: [email protected] #郵箱地址 (可以不填) 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埠訪問
使用者名稱和密碼就是剛剛建立的
登入成功,沒有報錯。
現在在伺服器端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 <[email protected]> (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.點選新增
新增完後點擊主機名啟用
虛機例項就是已經存在的虛擬機器
建立儲存KVM映象目錄
KVM中的虛擬機器都是以映象的方式進行儲存
根據自己伺服器的分割槽靈活選擇位置
名稱: 這裡的名稱顯示的名稱
路徑: 即儲存KVM虛擬機器路徑
建立完後需要建立映象(相當於虛擬硬碟大小)
建立映象
下面“Metadata”前的小方框一定不能勾選(預設是勾選的,要去掉!)
這裡新增的“映象”就是所建立虛擬機器的硬碟空間
虛擬機器所佔用的空間就是這個“映象”所在的宿主機下路徑所在的分割槽空間(也就是/home/kvm/kvmstorage/,即宿主機的home分割槽)
建立完畢
上傳映象
建立完虛擬硬碟,我們在建立一個IOS映象目錄
點選>儲存池>NEW_Storage
點選上傳映象
選中映象選擇上傳
除了在瀏覽器上傳,還可以直接下載阿里雲映象站映象。只要映象在/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引數