cenots7.8 安装WebVirtMgr

一、基础配置:
1查看是否支持虚拟化
cat /proc/cpuinfo | egrep 'vmx|svm'
2基础配置
setenforce 0
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
yum install epel-release
yum -y install vim iftop net-tools lrzsz ntpdate
systemctl restart sshd.service
systemctl stop firewalld.service
systemctl disable firewalld.service
timedatectl set-timezone Asia/Shanghai
ntpdate -u times.aliyum.com
hostnamectl set-hostname kvm-node1

3修改桥接网络:
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
#添加网桥
yum install bridge-utils -y
brctl addbr br0
#物理网卡的配置ifcfg-eth0
cat ifcfg-eth0
BOOTPROTO=none
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0

#网桥的配置ifcfg-br0
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=172.16.70.3
NETMASK=255.255.255.0
GATEWAY=172.16.70.1
DEFROUTE=yes
DNS1=114.114.114.114
DNS2=8.8.8.8
#重启网络服务
service network restart
二、安装 KVM 环境
1通过 yum 安装 kvm 基础包和管理工具
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
查看KVM模块是否被正确加载
$ lsmod | grep kvm
kvm_intel 183621 0
kvm 586948 1 kvm_intel
irqbypass 13503 1 kvm
kvm相关安装包及其作用:
qemu-kvm 主要的KVM程序包
python-virtinst 创建虚拟机所需要的命令行工具和程序库
virt-manager GUI虚拟机管理工具
virt-top 虚拟机统计命令
virt-viewer GUI连接程序,连接到已配置好的虚拟机
libvirt C语言工具包,提供libvirt服务
libvirt-client 为虚拟客户机提供的C语言工具包
virt-install 基于libvirt服务的虚拟机创建命令
bridge-utils 创建和管理桥接设备的工具
2kvm被管理端配置
#配置libvirt以启用TCP服务
vi /etc/sysconfig/libvirtd #取消以下字段的注释 监听8000
LLIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"
#同时修改/etc/libvirt/libvirtd.conf配置
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "none"

#开启kvm服务,并且设置其开机自动启动
systemctl start libvirtd
systemctl enable libvirtd

三、安装WebVirtMgr管理面板

yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx
yum -y install gcc python-devel
pip install numpy
pip install --upgrade pip #提示版本升级

#拉取源码和安装环境
git clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr
sudo pip install -r requirements.txt
./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'): admin
Email address: 111111111@qq.com
Password:  #web管理员密码
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 6 object(s) from 1 fixture(s)
四、配置NG
mkdir -p /var/www/webvirtmgr/
拷贝文件到nginx拷贝文件到nginx web目录
cd .. && cp -r webvirtmgr/ /var/www/webvirtmgr/
vi /etc/nginx/conf.d/webvirtmgr.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.conf
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
#增加配置
vim /etc/nginx/nginx.conf
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;

sendfile on;

keepalive_timeout 65;

server {
listen 80;
server_name localhost;

location / {
root html;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

#重启nginx
systemctl restart nginx.service
systemctl enable nginx.service
#配置用户组和权限
chown -R nginx:nginx /var/www/webvirtmgr

五、配置Supervisor
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
#启动supervisor守护线程
systemctl start supervisord.service
配置开启启动
systemctl enable supervisord.service

#查看端口 netstat -lnpt
#访问web

#后续添加其他kvm主机:
sudo su - nginx -s /bin/bash
ssh-keygen
touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config
chmod 0600 ~/.ssh/config
ssh-copy-id root@kvm-node2

#如果需要二次虚拟化
查看KVM 宿主机是否启用了嵌套虚拟化
#intel cpu
cat /sys/module/kvm_intel/parameters/nested
N

#AMD cpu
cat /sys/module/kvm_amd/parameters/nested
N

#打开KVM内核模块的Nested特性
vi /etc/modprobe.d/kvm-nested.conf
options kvm_intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1
#协助掉内核中的kvm_intel模块,注意要在所有虚拟机都关闭的情况下执行
modprobe -r kvm_intel
#重新加载该模块
modprobe -a kvm_intel

#再次查看
cat /sys/module/kvm_intel/parameters/nested
Y

#虚拟机查看cpu是否开启虚拟化
grep -E '(vmx|svm)' /proc/cpuinfo


#如果需要透传主机cpu
修改xml文件 custom 修改host-passthrough
cpu mode='custom' 修改成 host-passthrough

备注:
1测试不支持在线添加硬盘,需要修改xml文件 如下添加数据盘,数据盘需要提前创建
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/data/image/node2-data.img'/>
<target dev='vdb' bus='virtio'/>
</disk>
2不支持在线添加网卡
3不支持在线快照

#参考连接
https://www.baidu.com/link?url=XJi8R-7pekcHob0vptXxLjYbjXMm3mUy3KfJanL3ERzIL34RUAYpYTAQRBzS766c&wd=&eqid=f090dff7000282af000000025f3b50bf

 

posted @ 2020-08-18 20:48  怪兽在行动  阅读(187)  评论(0)    收藏  举报