WebVirtMgr是一個基於libvirt的Web界面,用於管理虛擬機。它容許您建立和配置新域,並調整域的資源分配。VNC查看器爲來賓域提供完整的圖形控制檯。KVM是目前惟一支持的虛擬機管理程序。
html
[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
kvm所用的全部服務器都須要互相作免密
若是隻有一臺機器,把本機的id_rsa.pub 拷貝到authorized_keys裏python
[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只在管理端安裝nginx
[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,默認是Debug模式同時日誌打印在前臺git
[root@BJtest32 webvirtmgr]# ./manage.py runserver 0:8000 IP+8000端口訪問
用戶名和密碼就是剛剛建立的
登陸成功,沒有報錯。
如今在服務器端Ctrl+C退出
安裝Nginx使用supervisor進行管理。
github
Nginx安裝 安裝完成後修改配置文件web
[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
supervisorctl全部的操做都須要在webvirtmgr的安裝目錄下,不然會提示找不到文件
WebVirtMgr默認使用supervisor進行管理(啓動中止服務) 因此咱們須要配置supervisor
django
[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 客戶端的交互終端,並會列出當前所管理的全部進程。
#建立配置文件 [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
1.Add Connection 添加宿主機(即KVM主機)
2.點擊SSH鏈接
3.Label 爲主機名,必須爲主機名作免密
4.IP 爲宿主機IP
5.用戶名爲服務器用戶名
6.點擊添加
添加完後點擊主機名激活
虛機實例就是已經存在的虛擬機
建立存儲KVM鏡像目錄
KVM中的虛擬機都是以鏡像的方式進行存儲vim
根據本身服務器的分區靈活選擇位置
名稱: 這裏的名稱顯示的名稱
路徑: 即存儲KVM虛擬機路徑
建立完後須要建立鏡像(至關於虛擬硬盤大小)
建立鏡像centos
下面「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參數