部署参考连接:https://zhuanlan.zhihu.com/p/434275145
部署参考连接:https://www.cnblogs.com/djlsunshine/p/11040246.html
一、前期准备(能上网的同版本 CentOS7 下载机)
下载 CentOS 7.9 全套 ISO
CentOS-7-x86_64-Everything-2009.iso
发送到部署机器上/root目录下。
既当离线 YUM 源,又当系统镜像。
1. 创建缓存目录
mkdir -p /opt/offline/{kvm,webvirtmgr-pkgs}/{rpms,pips}
2. 下载 KVM 及其依赖
yumdownloader --resolve --destdir=/opt/offline/kvm/rpms \
qemu-kvm qemu-kvm-tools qemu-img virt-install virt-manager \
virt-viewer libvirt libvirt-client libvirt-python libguestfs-tools \
bridge-utils
3.下载 WebVirtMgr 所需 rpm
yumdownloader --resolve --destdir=/opt/offline/webvirtmgr-pkgs/rpms \
git nginx supervisor python2-pip libvirt-python libxml2-python \
python-websockify gcc python2-devel python2-lockfile
4. 下载 Python2 依赖
cd /opt/offline/webvirtmgr-pkgs/pips
pip2 download -r https://raw.githubusercontent.com/retspen/webvirtmgr/master/requirements.txt
pip2 download 'Django==1.6.11'
5.下载源码
cd /opt/offline
git clone https://github.com/retspen/webvirtmgr.git
6. 生成本地 repo 数据
createrepo /opt/offline/kvm/rpms
createrepo /opt/offline/webvirtmgr/rpms
7.打包
cd /opt
tar zvcf kvm-webvirtmgr-offline.tar.gz offline/
7.通过scp等命令,发送到远程服务器。
scp -r kvm-webvirtmgr-offline.tar.gz root@部署机ip:/opt/
二、离线主机操作(无网络)
1. 关闭防火墙 / SELinux
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
2. 配置本地 yum 源(方便后续缺少依赖补充)
# 1. 创建挂载点
mkdir -p /mnt/centos7-dvd
# 挂载
mount -o loop /root/CentOS-7-x86_64-Everything-2009.iso /mnt/centos7-dvd
# 写 repo
cat > /etc/yum.repos.d/dvd.repo <<'EOF'
[dvd]
name=CentOS7-DVD
baseurl=file:///mnt/centos7-dvd
enabled=1
gpgcheck=0
EOF
# 执行
yum clean all
yum makecache
1. 安装 KVM 核心
1.解压
cd /opt
tar xcf kvm-webvirtmgr-offline.tar.gz
cd /opt/offline/kvm/rpms
yum localinstall -y *.rpm
# 启服务
systemctl enable --now libvirtd
2. 配置 KVM 与桥接(br0 示例)
1. 创建桥接配置文件
cd /etc/sysconfig/network-scripts
cp ifcfg- cp ifcfg-bak
cp ifcfg- ifcfg-br0
2. ifcfg-br0 示例:
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.200
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
3.原网卡 示例(只保留桥接指向):
TYPE=Ethernet
NAME=
DEVICE=
ONBOOT=yes
BRIDGE=br0
4.重启网络:
systemctl restart network
5. 启动 libvirtd
systemctl enable libvirtd && systemctl start libvirtd
3. 安装 WebVirtMgr
# 安装RPM
cd /opt/offline/webvirtmgr-pkgs/rpms
yum localinstall -y *.rpm
# 安装pip包
cd /opt/offline/webvirtmgr-pkgs/pips
pip2 install --no-index --find-links=. -r \
/opt/offline/webvirtmgr/requirements.txt
pip2 install --no-index --find-links=. Django==1.6.11
4. 初始化WebVirtMgr
# 修正 secret_key 文件权限(防报错)
touch /opt/offline/webvirtmgr/webvirtmgr/.secret_key_store
chmod 600 /opt/offline/webvirtmgr/webvirtmgr/.secret_key_store
# 初始化数据库(必须用 Python2)
cd /opt/offline/webvirtmgr
python2 manage.py syncdb # 按提示创建超级用户
python2 manage.py collectstatic --noinput
5. 配置 Nginx
cat > /etc/nginx/conf.d/webvirtmgr.conf <<'EOF'
server {
listen 80;
server_name _;
location /static/ {
root /opt/offline/webvirtmgr; # ← 这里改成真实目录
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 $http_host;
}
}
EOF
systemctl restart nginx
6. 配置 systemd
1. 创建 webvirtmgr 主服务
cat > /etc/systemd/system/webvirtmgr.service /etc/systemd/system/webvirtmgr-console.service <<'EOF'
[Unit]
Description=WebVirtMgr noVNC console proxy
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/offline/webvirtmgr-master
ExecStart=/usr/bin/python2 /opt/offline/webvirtmgr-master/console/webvirtmgr-console
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
3.载入并立即启动
systemctl daemon-reload
systemctl enable --now webvirtmgr.service webvirtmgr-console.service
4. 查看状态/日志
systemctl status webvirtmgr.service webvirtmgr-console.service
journalctl -u webvirtmgr -f # 实时日志
三、WebVirtMgr的基本使用
1. 创建ssh连接
浏览器访问 http://<服务器IP>
用刚才创建的 superuser 登录。


点击添加,添加成功后如下:

点击IP进入

2. 添加存放镜像的存储池
点击下图按钮,进行创建

这里我们将iso上传对应路径,ISO文件权限要给到777

创建完成后,可以看到下图信息

点击进入界面后即可看到iso信息

3. 创建KVM的磁盘存储池
点击下图按钮,进行创建


创建完成后,即可看到下图信息。

点击,进入即可看到如下信息。

4. 为kvm准备磁盘文件
按照顺序1,点击添加镜像,在顺序2输入信息,点击创建后,即可在顺序3看到创建的信息。

5. 创建kvm的网络【若不单独创建默认为NAT模式】


对应前面配置br0网桥设置,如果使用的别的名称,则需要再次配置网桥,如果不配置网桥则报错无法启动虚拟机
6.创建KVM
点击

设置参数:
选择刚刚创建的磁盘和网络

7. 开启虚拟机并安装
根据下图操作,点击连接,需要按钮变成已断开

点击启动

进入控制台查看


8.添加新硬盘
需将虚拟机关机,然后编辑xml文件(如下图),添加如下代码(需将中文注释删掉)
---添加改行代码找到新增磁盘格式
--指定新增磁盘路径
--指定磁盘设备名称,和传输总线类型

9.设置内存
因为WebVirtMgr 前端限制原因,内存最大只能选择16G,如果需要创建大于16G的机器,就需要修改xml文件。

如下图,将想要的内存换算成kb,然后在<memory unit='KiB'>16777216</memory> 填写即可(需要关机)
10.注意事项
1. 因为WebVirtMgr 前端限制原因,默认CPU数量要设置成1,否则会出现Guest has not initialized the display (yet)的错误(如下图)

需要设置最大CPU数量为需要的,然后当前CPU数量为1(如图)。

这样设置完成后,就不会出现Guest has not initialized the display (yet)了。
在WebVirtMgr服务器,执行命令,在线热插到目标核数(mi04为你的服务器名称,4为你想要的目标核数)
virsh setvcpus mini01 8 --live


浙公网安备 33010602011771号