虚拟机版本
vmware workstation 15.5.0 pro   (也就是linux版)

cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
uname -r
3.10.0-693.el7.x86_64

IP:192.168.1.129
注:Virtual Network Editor是桥接
虚拟机的网络也是设置的桥接

关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

检查是否支持虚拟机
egrep '(vmx|svm)' --color=always /proc/cpuinfo
lsmod |grep kvm

安装kvm
yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer
systemctl start libvirtd       # 启动libvitd服务
systemctl enable libvirtd      # 将libvitd服务加入开机自启
systemctl status libvirtd       # 查看libvitd服务的状态
systemctl is-enabled libvirtd     # 查看是否开机启动

配置桥接网络br0
cd /etc/sysconfig/network-scripts/
vim ifcfg-br0    #新建该文件
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.129    #服务器的内网地址,也就是给服务器最起初分配的地址
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=192.168.1.1
NBOOT="yes"
TYPE="Bridge"

vim ifcfg-ens33      #修改自带的ens33网卡配置

NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
ZONE=public

重启服务器使网卡配置生效(重启网卡有时候不管用)
reboot

开启转发功能并修改ulimit参数
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "* soft nproc 65500" >>/etc/security/limits.conf
echo "* hard nproc 65500" >>/etc/security/limits.conf
echo "* soft nofile 65500" >>/etc/security/limits.conf
echo "* hard nofile 65500" >>/etc/security/limits.conf

启动libvirt
systemctl restart libvirtd
systemctl status libvirtd

测试
virsh -c qemu:///system list

查看virsh版本
virsh --version

做个软连接
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

查看网桥
brctl show

KVM安装系统请看我另一篇文章

先创建一台虚拟机,

创建磁盘

mkdir /kvmdir      # 创建虚拟硬盘的存放位置
qemu-img create -f qcow2 /kvmdir/opop.img 20G      # 创建一个500G的qcow2格式并且名为opop的镜像

创建虚拟机

virt-install --name opop --memory 512 --vcpus=1 \
--cdrom=/root/CentOS-7-x86_64-DVD-1708.iso --os-variant=rhel7 --boot=hd,cdrom --disk path=/kvmdir/oppo.img,format=qcow2,bus=virtio,size=20 \
--network default,model='e1000' --graphics vnc,password=123456,listen=0.0.0.0 --noautoconsole --os-type=linux

注:如遇到错误,我的另一篇kvm安装文章中有说明,接上图往下都是一样的安装

系统装完后会提示要重启,重启后kvm会关机,需要再用命令打开,如下图:

再用VNC连接即可,如下图

部署webvirtmgr
安装依赖包
yum -y install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx gcc gcc-c++ python-devel
pip install numpy
pip install --upgrade pip

生成秘钥和公钥
ssh-keygen -t rsa
将公钥上传到github上,然后执行下一步操作

克隆项目
git clone --depth=1 git@github.com:retspen/webvirtmgr.git
cd webvirtmgr
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/    #使用国内源安装
./manage.py syncdb
=====================提示==============================
Would you like to create one now? (yes/no): yes    #输入yes
Username (leave blank to use 'root'):    #直接回车
Email address: zhangxxxxxx@126.com    #输入自己的邮箱
Password:    #输入密码
Password (again):
=====================提示==============================

./manage.py collectstatic    ---配置数据库的账号
=====================提示==============================
Type 'yes' to continue, or 'no' to cancel: yes
=====================提示==============================

创建一个超级用户(该账号和密码待会登录时会用到)
./manage.py createsuperuser    --配置webvirtmgr 登录账号
=====================提示==============================
Username: zhangsan   #输入超级用户名
Email address: zhangxxxxxxx@126.com    #输入自己的邮箱
Password:    #输入密码
Password (again):
Superuser created successfully.
=====================提示==============================

设置SSH
ssh 192.168.1.129 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:6080
输入一个yes
输入1.129的root登录密码

拷贝web到 相关目录
mkdir -pv /var/www
cp -Rv ~/webvirtmgr/ /var/www/webvirtmgr

编辑nginx配置文件
cd /etc/nginx/
mv nginx.conf{,.bak}
cp nginx.conf.default nginx.conf

编辑配置文件
vim nginx.conf
http {
include mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
注:其他不用改,主要加上上一行即可。

添加 /etc/nginx/conf.d/webvirtmgr.conf 配置文件
vim /etc/nginx/conf.d/wevirtmgr.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
}
}

重启nginx:
systemctl start nginx
chkconfig nginx on

修改webvirtmgr权限
chown -R nginx.nginx /var/www/webvirtmgr/

设置 supervisor (如果iptables防火墙开启的话,就必须要开通80、8000、6080端口访问)
vim /etc/supervisord.d/webvirtmgr.ini
[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

检查
vim /var/www/webvirtmgr/conf/gunicorn.conf.py   //确保下面bind绑定的是本机的8000端口,这个在nginx配置中定义了,被代理的端口
bind = '127.0.0.1:8000'

重启服务、设置开机启动
cd /var/www/webvirtmgr
git pull
./manage.py collectstatic
systemctl restart supervisord
systemctl status supervisord
systemctl enable supervisord.service 或 chkconfig supervisord on

访问地址:http://192.168.1.129:80

账号密码为上面创建的 超级用户

默认为空,就是没有连接,需要手动添加连接

注:因为我这里的网络环境的限制,步骤是对的   只是宿机到1.102的网络不通,1.129和1.102之间是 通的

能看到上图后即可参考:https://www.scit028.com/post-18.html 进行设置

                          

                           转载请注明出处,多谢各位谅解

最新文章

  1. EXTJS中grid的数据特殊显示,不同窗口的数据传递
  2. android studio我的习惯操作
  3. Ajax实现原理详解
  4. android基础(三)ContentProvider
  5. 【Backbone】简介
  6. Light OJ 1031 - Easy Game(区间DP)
  7. Java中int和String互相转换的多种方法
  8. zb的生日(暴搜dfs)
  9. java平台的常用资源
  10. 活动图(Activity Diagram) - 项目分解文章
  11. bootstrap基本标签总结2
  12. 功能强大的HTML
  13. 字符串的模式匹配(Java实现)
  14. 基于UDP协议的socket编程
  15. codeforces 796A-D
  16. [精华][推荐]CAS SSO 单点登录框架学习 环境搭建
  17. SAP本地化-银企直连
  18. 只需两步获取任何微信小程序源码
  19. 《centos系列》ubuntu终端链接centos服务器
  20. nginx 代理之修改header 的HOST,实现代理转代理

热门文章

  1. HTML之表格标签和form表单
  2. EF Migraiton错误解决
  3. Navicate 12 for mysql
  4. Python基础之异常
  5. js获取文件后缀名
  6. python 杂记 网络
  7. gcc的作用
  8. Python 练习实例2
  9. Codeforces Round #587 (Div. 3) C题 【判断两个矩形是否完全覆盖一个矩形问题】 {补题 [差点上分系列]}
  10. git 远程代码被覆盖