作者:邓聪聪

我们常在Windowns下使用VMware,当然在Liunx中也有这样的软件供我们使用。生产环境的KVM宿主机越来越多,需要对宿主机的状态进行调控。这里用webvirtmgr进行管理。图形化的WEB,让人能更方便的查看kvm 宿主机的情况和操作

环境:CentnOS 6.8

工具:git clone git://github.com/retspen/webvirtmgr.git  (去git_hub求源代码),(增加安装支持的软件源)yum -y install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

依赖:git python-pip libvirt-python libxml2-python python-websockify  upervisor nginx novnc python-virtinst libvirt vm ridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v tunctl unzip zip

安装KVM前需要查看本机系统配置是否支持安装(cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l;  结果>0 表示支持)

1 安装支持的软件源;

 yum -y install http://dl.fedoraproject.org/pub/epel//i386/epel-release--.noarch.rpm

2 安装相关软件;

 yum -y install git python-pip libvirt-python libxml2-python python-websockify upervisor nginx novnc python-virtinst libvirt vm ridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v tunctl unzip zip

3 从git-hub中下载相关的webvirtmgr代码;

 cd /usr/local/src/
git clone git://github.com/retspen/webvirtmgr.git

4 安装webvirtmgr;

 cd webvirtmgr/
pip install -r requirements.txt

6 对django进行环境配置;

 ./manage.py syncdb
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'): 用户
Email address: 邮箱
Password:密码
Password (again):密码
###==========================###
./manage.py collectstatic #生成配置文件
./manage.py createsuperuser #添加管理员账号
/usr/bin/python2 manage.py createsuperuser #添加管理员账号(同样使用python2版本执行,不要使用默认的python执行)

7 拷贝web到 相关目录;

 cd ..
mkdir -pv /var/www
cp -Rv webvirtmgr /var/www/webvirtmg
chown -R nginx:nginx /var/www/webvirtmgr

8 设置ssh;

 su - nginx -s /bin/bash
ssh-keygen #产生公私钥
ssh-copy-id (kvm-ip) #由于这里webvirtmgr和kvm服务部署在同一台机器,所以这里本地信任。如果kvm部署在其他机器,那么这个是它的ip

9 辑nginx配置文件
提前确保/etc/nginx/nginx.conf文件里开启了“include /etc/nginx/conf.d/*.conf;”

 [root@local]#vim /etc/nginx/conf.d/webvirtmgr.conf //添加下面内容到文件中
server {
listen 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:;
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 ;
proxy_read_timeout ;
proxy_send_timeout ;
client_max_body_size 1024M; # Set higher depending on your needs
}
}
 mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak 

10 设置 supervisor;

 [root@openstack ops]# vim /etc/supervisord.conf //在文件末尾添加,注意将默认的python改为python2,因为上面只有用这个版本执行才不报错!
[program:webvirtmgr]
command=/usr/bin/python2 /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py #启动8000端口***如果报错无法启动,查看/var/www/wvirtmgr权限是否正常!!!
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/python2 /var/www/webvirtmgr/console/webvirtmgr-console #启动6080端口(这是控制台vnc端口)
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx

[root@localhost ~]# netstat -lnpt

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 127.0.0.1:8000              0.0.0.0:*                   LISTEN      1698/python2

tcp        0      0 0.0.0.0:6080                0.0.0.0:*                   LISTEN      1697/python2

tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      544/qemu-kvm

tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      32518/nginx

11 修改eth为物理网口,br为桥接网口配置文件

 cp ifcfg-eth0 ifcfg-br0

 [root@vfeelit network-scripts]# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPV6INIT=no
ONBOOT=yes
DELAY=
IPADDR=192.168.1.66
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
[root@vfeelit network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
BOOTPROTO=none
IPV6INIT=no
ONBOOT=yes

=========================

ifdown eth
ifup br0
ifup eth

================================================至此,web的部署基本完成。内部功能可参考其他文档

web创建虚拟机;

1:首先创建iso目录和虚拟机文件的存储目录

3  a:b;

4  

Liunx之KVM搭建图形化的WEB的更多相关文章

  1. 使用KVM的图形化界面安装centos7虚拟机

    前提条件 1.宿主机上已经安装KVM的图形化管理软件,参考网址:https://www.cnblogs.com/sanduzxcvbnm/p/15538881.html 2.宿主机上安装vnc服务器, ...

  2. flask框架+pygal+sqlit3搭建图形化业务数据分析平台

    一. 前言 先说下主要的框架和主要的图形库的特点:(个人见解) Django:python开发的一个重量级的web框架,集成了MVC和ORM等技术,设计之初是为了使开发复杂的.数据库驱动的网站变得简单 ...

  3. VSCode + PYQT5 搭建图形化界面

    1,安装依赖 pip install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5 pip install -i https://mirrors.a ...

  4. DL4J实战之六:图形化展示训练过程

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<DL4J实战>系列的第六 ...

  5. kvm 图形化安装

    为了再后续查看方便,我还是完整的记录kvm图形化安装. 介于网络环境的原因,我选择NAT. 2,安装kvm前的准备工作 2.1 关闭防火墙  setenforce 0    vi /etc/sysco ...

  6. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.4.无法图形化安装Grid Infrastructure

    无法图形化安装: [grid@linuxrac1 grid]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp ...

  7. centos7图形化界面安装KVM虚拟机

    一.检查kvm和libvirt 是否安装 查看内核模块中是否含有kvm lsmod | grep kvm 查看cpu是否支持虚拟化 egrep -c '(vmx|svm)' /proc/cpuinfo ...

  8. centos6.5环境基于conga的web图形化界面方式配置rhcs集群

    一.简介 RHCS 即 RedHat Cluster Suite ,中文意思即红帽集群套件.红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用 ...

  9. 分享一个基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具

    soar-web 基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具,支持 soar 配置的添加.修改.复制,多配置切换,配置的导出.导入与导入功能. 环境需求 python3.xF ...

随机推荐

  1. 面向对象【day08】:异常处理(六)

    本节内容 1.概述 2.异常梳理 3.异常梳理流程图 4.异常大全 5.自定义异常 一.概述 异常处理是当程序出错了,但是我们又不想让用户看到这个错误,而且我在写程序的时候已经预料到了它可以出现这样的 ...

  2. Matlab2017A破解版安装详细图文教程(附破解补丁) 64位

    摘录网址:http://www.jb51.net/softjc/543170.html MATLAB2017a安装教程: 1.下载并解压本站提供的MATLAB2017a破解版安装包,载入右键解压或者使 ...

  3. MongoDB 入门篇

    1.1 数据库管理系统 在了解MongoDB之前需要先了解先数据库管理系统 1.1.1 什么是数据? 数据(英语:data),是指未经过处理的原始记录. 一般而言,数据缺乏组织及分类,无法明确的表达事 ...

  4. Freemarker中的日期输出

    <p> ${scheme.createTime?string("yyyy年MM月dd日 HH:mm:ss")}</p>

  5. PHP7 学习笔记(十一)使用phpstudy快速配置一个虚拟主机

    说明:为了windows本地开发php方便,这里推荐使用PHP集成环境phpstudy. 目的:使用域名访问项目(tinywan.test) 1.官网:http://www.phpstudy.net ...

  6. asp.net mvc && asp.net 页面跳转

    1.使用传统的Response.Redirect例如string url = "/account/create";Response.Redirect(url); 1.Server. ...

  7. 【python小练】0004

    第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数. 先回忆一下各种括号的用途: () tuple [] list {} dict ([]) set——需要一个list作为输入合集 c ...

  8. 牛客寒假算法基础集训营4 G(最小生成树)

    题目链接 题目要求的是得到k种不同的元素,(题解)将每种类型视为一个点,跑一边克鲁斯卡尔即可. #include <set> #include <map> #include & ...

  9. python判断小数示例&写入文件内容示例

    #需求分析: #1.判断小数点个数是否为1 #2.按照小数点分隔,取到小数点左边和右边的值 #3.判断正小数,小数点左边为整数,小数点右边为整数 #4.判断负小数,小数点左边以负号开头,并且只有一个负 ...

  10. JDK1.8源码分析之Comparable && Comparator

    import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util. ...