①WebVirtCloud KVM虚拟化管理系统(Web端)部署教程

📖 文档说明
本教程是 WebVirtCloud 部署系列 的第一篇,在完成以下两篇基础部署后进行:

功能介绍

  本文档提供在 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 进程管理配置