CentOS 7 下安装KVM和WebVirtCloud管理面板

写在前面

本教程依据官方Wiki和现有教程以及自身实践编写而成,更正了官网Wiki的部分错误并简化了内容,适合一把梭操作,转载请标注来源。
WebVirtCloud 开源地址: https://github.com/retspen/webvirtcloud
感谢 @a350064

KVM安装

检查环境是否支持KVM
cat /proc/cpuinfo | egrep 'vmx|svm'
若环境支持则有内容返回
关闭SELinux
vi /etc/sysconfig/selinux
修改 SELinux=enforcing  SELinux=disabled
安装KVM环境
使用yum软件包管理器进行安装
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
检查KVM模块是否被加载
lsmod | grep kvm
若被正确加载则返回如下
kvm_intel 249856 0
kvm 655360 1 kvm_intel
irqbypass 16384 1 kvm
配置libvirt启用TCP服务
命令行输入:
LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"
修改 /etc/sysconfig/libvirtd 文件
去除 LIBVIRTD_ARGS="--listen" 前的#号
修改 /etc/libvirt/libvirtd.conf 文件
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
若为单机运行则需修改为 listen_addr = "127.0.0.1"
否则需修改为listen_addr = "0.0.0.0"
开启服务并且设置开机自启动
systemctl start libvirtd
systemctl enable libvirtd
检查运行状态
systemctl status libvirtd
若显示 Active: active (running) 则运行正常

安装WebVirtCloud

安装依赖
yum -y install python-virtualenv python-devel libvirt-devel glibc gcc nginx supervisor python-lxml git python-libguestfs
下载WebVirtCloud
mkdir /srv
cd /srv
git clone https://github.com/retspen/webvirtcloud 
cd webvirtcloud
cp webvirtcloud/settings.py.template webvirtcloud/settings.py
设置数据库密码
vi webvirtcloud/settings.py
修改 SECRET_KEY = '这里写密码' 注意不要使用除下划线外的特殊字符,可能会出现奇怪的Bug
安装Python库并设置环境
virtualenv venv
source venv/bin/activate

# 安装pip依赖 (国内源)
venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Django==1.11.14
venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple websockify==0.8.0
venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gunicorn==19.9.0
venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lxml==4.2.3
venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytz

# 安装pip依赖 (海外源)
venv/bin/pip install Django==1.11.14
venv/bin/pip install websockify==0.8.0
venv/bin/pip install gunicorn==19.9.0
venv/bin/pip install lxml==4.2.3
venv/bin/pip install pytz
查看 libvirt-python 版本号并且安装库
使用 yum info libvirt-python 查看版本号
# 国内源
venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple libvirt-python==版本号

#海外源
venv/bin/pip install libvirt-python==版本号
复制网站配置文件并且安装
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d/
venv/bin/python manage.py migrate
设置进程守护
vi /etc/supervisord.conf
在末尾添加如下内容
[program:webvirtcloud]
command=/srv/webvirtcloud/venv/bin/gunicorn webvirtcloud.wsgi:application -c /srv/webvirtcloud/gunicorn.conf.py
directory=/srv/webvirtcloud
user=nginx
autostart=true
autorestart=true
redirect_stderr=true

[program:novncd]
command=/srv/webvirtcloud/venv/bin/python /srv/webvirtcloud/console/novncd
directory=/srv/webvirtcloud
user=nginx
autostart=true
autorestart=true
redirect_stderr=true
注释掉Nginx默认站点
vi /etc/nginx/nginx.conf
#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }
注释掉上面一堆东西
添加网站目录权限
chown -R nginx:nginx /srv/webvirtcloud
配置系统服务
# 重启生效配置文件
systemctl restart nginx
systemctl restart supervisord

# 开机自启动
systemctl enable nginx
systemctl enable supervisord

结束

访问 http://IP地址/ 即可看到控制面板,默认账户 admin 密码为 admin
来源:https://www.saltyfish.eu/archives/16

评论

匿名说…
怎么添加被控机啊

此博客中的热门博文

服务端高并发分布式架构演进之路

Yaf应用建议

打造一个可国内访问的Blogger(Blogspot)方法

如何选购无线路由器?有几个坑一定要避免

斐讯N1小钢炮Docker安装OpenWrt/LEDE做旁路由

实践番茄工作法的经验

win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录(如D盘)

将阿里云盘挂载为Webdav并使用rclone挂载到本地

黑群晖硬件选用与兼容列表

Windows7系统目录迁移:Users,Program Files,ProgramData