|
|
1 vecka sedan | |
|---|---|---|
| backend | 1 vecka sedan | |
| frontend | 1 vecka sedan | |
| nginx | 1 vecka sedan | |
| scripts | 2 veckor sedan | |
| .gitignore | 2 veckor sedan | |
| README.md | 2 veckor sedan | |
| docker-compose.yml | 3 veckor sedan | |
| install.sh | 1 vecka sedan | |
| start.sh | 1 vecka sedan |
基于 FastAPI + Vue 3 + Element Plus 的 KVM 虚拟机管理平台,通过 libvirt API 管理虚拟机,支持多主机纳管。
kvm-manager/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI 应用入口
│ │ ├── config.py # 配置
│ │ ├── libvirt_conn.py # libvirt 连接池
│ │ ├── hosts.py # 主机注册表
│ │ ├── utils.py # 工具函数
│ │ └── routers/ # API 路由
│ │ ├── vm.py # 虚拟机管理
│ │ ├── storage.py # 存储管理
│ │ ├── network.py # 网络管理
│ │ ├── snapshot.py # 快照管理
│ │ ├── monitor.py # 资源监控
│ │ └── host.py # 主机管理
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 通用组件
│ │ ├── api/ # API 调用
│ │ ├── router/ # 路由配置
│ │ └── App.vue
│ ├── package.json
│ └── vite.config.js
├── scripts/ # 工具脚本
│ ├── start.sh # 服务启动脚本
│ └── install-guest-agent.sh # Guest Agent 安装脚本
├── docker-compose.yml
└── README.md
cd kvm-manager/scripts
# 启动所有服务
./start.sh
# 查看服务状态
./start.sh status
# 停止服务
./start.sh -s
# 后端
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8004
# 前端(另开终端)
cd frontend
npm install
npm run dev
docker-compose up -d
在「主机管理」页面添加远程 KVM 主机,支持以下连接方式:
qemu:///systemqemu+ssh://user@host/systemqemu+tcp://host/system用于自动获取虚拟机 IP 地址。
# 单个虚拟机
./scripts/install-guest-agent.sh VM_NAME
# 所有虚拟机
./scripts/install-guest-agent.sh --all
virsh edit VM_NAME在 <devices> 中添加:
<controller type='virtio-serial' index='0'/>
<channel type='unix'>
<source mode='bind'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
</channel>
开机后安装 Agent:
# CentOS/RHEL
yum install qemu-guest-agent
systemctl enable qemu-guest-agent
# Ubuntu/Debian
apt install qemu-guest-agent
systemctl enable qemu-guest-agent
验证:virsh qemu-agent-command VM_NAME '{"execute":"guest-info"}'
| 配置项 | 说明 | 默认值 |
|---|---|---|
LIBVIRT_URI |
本地 libvirt 连接 URI | qemu:///system |
API_PREFIX |
API 路径前缀 | /api |
SECRET_KEY |
JWT 密钥 | 自动生成 |
KVM_DATA_DIR |
主机数据存储目录 | /var/lib/kvm-manager |
0.0.0.0 才能被代理访问