📖 文档说明
本教程是 WebVirtCloud 部署系列 的第一篇,在完成以下两篇基础部署后进行:
- ✅ ① WebVirtCloud KVM虚拟化管理系统(Web端)部署教程
- ✅ ② WebVirtCloud KVM虚拟化计算节点(单KVM)部署教程
- ✅ ③ WebVirtCloud KVM虚拟化管理系统 桥接网络配置与虚拟机开通教程
功能介绍
本文档提供在 Ubuntu 22.04 系统上从零部署 WebVirtCloud 的完整指南。WebVirtCloud 是一款基于 Web 的 KVM 虚拟机管理系统,可通过浏览器集中管理、监控和操作 KVM 虚拟化环境,适用于构建私有云或虚拟化管理平台。内容包括环境配置、依赖安装、服务部署与访问验证,帮助您快速完成平台部署。
部署前提
- 操作系统:Ubuntu 22.04 LTS
- 网络环境:可访问互联网以下载依赖包
- 硬件要求:建议至少2GB内存、10GB磁盘空间
- 可选项:已安装并配置好KVM计算节点(本指南仅部署Web管理界面,计算节点参考: https://blog.hx99.net/Tech/3542.html )
脚本快速部署
https://gitee.com/cncsrf/webvirtcloud-auto-deploy

或者手工部署
一、安装依赖组件
apt-get update
apt-get install -y \
git \
virtualenv \
python3-virtualenv \
python3-dev \
python3-lxml \
libvirt-dev \
zlib1g-dev \
libxslt1-dev \
nginx \
supervisor \
libsasl2-modules \
gcc \
pkg-config \
python3-guestfs \
libsasl2-dev \
libldap2-dev \
libssl-dev
二、部署 WebVirtCloud 核心服务
1、克隆代码并生成配置文件
# 克隆官方源码
git clone https://github.com/retspen/webvirtcloud
# 进入项目目录
cd webvirtcloud
# 复制配置文件模板
cp webvirtcloud/settings.py.template webvirtcloud/settings.py
2、生成密钥并配置
# 生成 Django 所需的 32 位密钥(复制输出结果)
openssl rand -base64 32
# 示例输出:HFoOElT+SBC9ZQcdlz/7lgtqOQD9/ERNYsXvHYxUPSU=
# 编辑配置文件,填入密钥
vi webvirtcloud/settings.py
# 找到 SECRET_KEY 行,替换为生成的密钥(注意保留引号)
SECRET_KEY = "HFoOElT+SBC9ZQcdlz/7lgtqOQD9/ERNYsXvHYxUPSU="
# 添加 CSRF 信任IP(避免登录报错)
# 在文件末尾添加(替换为管理端实际IP)
CSRF_TRUSTED_ORIGINS = ['http://192.168.20.71',]
3、复制系统服务配置
# 复制 Supervisor 配置(用于进程管理)
cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d/
# 复制 Nginx 配置(用于网页访问)
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d/
4、移动项目目录
# 移动项目到系统标准目录
cd .. && mv webvirtcloud /srv/

5、创建虚拟环境并安装依赖
# 进入项目目录
cd /srv/webvirtcloud/
# 创建 Python3 虚拟环境(隔离依赖)
virtualenv -p python3 venv
# 激活虚拟环境
source venv/bin/activate
# 设置国内 PIP 源(避免下载超时)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# (关键修复)修正依赖文件中的错误包名
sed -i 's/crypt-r==.*/cryptography==38.0.4/g' conf/requirements.txt
# 安装项目依赖
pip install -r conf/requirements.txt
# (关键修复)修正源码中错误的模块引用
sed -i 's/import crypt_r/import cryptography/g' /srv/webvirtcloud/instances/views.py
# 执行数据库迁移(生成 Django 所需数据库)
python3 manage.py migrate
# 退出虚拟环境
deactivate


6、设置目录权限
# 此时所有文件(包括迁移生成的 db.sqlite3、虚拟环境 venv)均已创建,一次授权即可覆盖全部
chown -R www-data:www-data /srv/webvirtcloud/
三、启动 Web 服务并验证
3、配置 Nginx 并启动
# 删除 Nginx 默认站点(避免端口冲突)
rm /etc/nginx/sites-enabled/default
# 重启 Nginx 服务
systemctl restart nginx
# 验证 Nginx 状态(需显示 active(running))
systemctl status nginx
2、启动 Supervisor 并管理进程
# 重启 Supervisor 服务(加载 WebVirtCloud 配置)
systemctl restart supervisor
# 验证 Supervisor 状态
systemctl status supervisor
3、访问 Web 界面

打开浏览器,输入
http://管理端IP(如 http://192.168.20.71);默认登录账号:
admin,默认密码:admin;成功登录后显示空白界面(无计算节点),属于正常现象,后续添加计算端后即可使用。
四、文件位置说明
| 文件/目录 | 路径 | 说明 |
|---|---|---|
| 项目目录 | /srv/webvirtcloud/ |
主程序目录 |
| 配置文件 | /srv/webvirtcloud/webvirtcloud/settings.py |
Django 配置 |
| 数据库 | /srv/webvirtcloud/db.sqlite3 |
SQLite 数据库 |
| 虚拟环境 | /srv/webvirtcloud/venv/ |
Python 虚拟环境 |
| Nginx 配置 | /etc/nginx/conf.d/webvirtcloud.conf |
Web 服务器配置 |
| Supervisor 配置 | /etc/supervisor/conf.d/webvirtcloud.conf |
进程管理配置 |