No description
| app | ||
| config.py | ||
| README.md | ||
| requirements.txt | ||
| run.py | ||
VMware vSphere Manager
一个基于 Python Flask 的 VMware vSphere Web 管理客户端,支持 vSphere 5.5 及以上版本。
功能特性
- 🌐 跨平台支持 - Windows、Linux、macOS
- 🔗 vSphere 集成 - 支持 VMware vSphere 5.5+
- 💻 虚拟机管理 - 开关机、重启、监控
- 🖥️ ESXi 主机管理 - 主机状态、资源监控
- 💾 存储管理 - 数据存储监控、使用率统计
- 📸 快照管理 - 创建、查看虚拟机快照
- 🔐 安全认证 - 用户登录、会话管理
- 📊 实时监控 - CPU、内存、存储使用情况
- 🎨 现代界面 - Bootstrap 5 响应式设计
技术栈
- 后端: Python 3.6+, Flask, pyvmomi 6.7.3
- 前端: HTML5, Bootstrap 5, jQuery
- 认证: Flask-Login
- 表单: WTForms, Flask-WTF
- API: VMware vSphere Web Services API
系统要求
- Python 3.6 或更高版本
- VMware vSphere 5.5 或更高版本
- vCenter Server 访问权限
- 现代浏览器支持
安装部署
1. 克隆项目
git clone <repository-url>
cd vmmanager
2. 安装依赖
# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
# 安装依赖包
pip install -r requirements.txt
3. 配置环境变量(可选)
# 设置 vCenter 连接信息(可选,也可在 Web 界面中设置)
export VSPHERE_HOST=vcenter.example.com
export VSPHERE_USER=administrator@vsphere.local
export VSPHERE_PASSWORD=your_password
export VSPHERE_PORT=443
export VSPHERE_SSL_VERIFY=false
# 设置 Flask 配置
export SECRET_KEY=your-secret-key
export FLASK_HOST=0.0.0.0
export FLASK_PORT=5001
export FLASK_DEBUG=false
4. 运行应用
# 使用启动脚本
python run.py
# 或直接使用 Flask
export FLASK_APP=run.py
flask run --host=0.0.0.0 --port=5001
5. 访问应用
打开浏览器访问: http://localhost:5001
默认登录账号:
- 用户名:
admin - 密码:
admin
项目结构
vmmanager/
├── app/
│ ├── __init__.py # Flask 应用工厂
│ ├── models.py # 数据模型
│ ├── views.py # 路由和视图函数
│ ├── vsphere_client.py # vSphere API 客户端
│ ├── forms.py # WTForms 表单定义
│ └── templates/ # Jinja2 模板
│ ├── base.html # 基础模板
│ ├── login.html # 登录页面
│ ├── connect.html # vCenter 连接页面
│ ├── dashboard.html # 仪表板
│ ├── vms.html # 虚拟机列表
│ ├── vm_detail.html # 虚拟机详情
│ ├── hosts.html # ESXi 主机列表
│ ├── datastores.html # 数据存储列表
│ ├── 404.html # 404 错误页面
│ └── 500.html # 500 错误页面
├── static/ # 静态文件目录
│ ├── css/ # CSS 样式文件
│ ├── js/ # JavaScript 文件
│ └── img/ # 图片文件
├── config.py # 配置文件
├── requirements.txt # Python 依赖包
├── run.py # 应用启动脚本
└── README.md # 项目文档
使用指南
1. 连接 vCenter
- 使用
admin/admin登录系统 - 在连接页面输入 vCenter 服务器信息
- 支持自定义端口和 SSL 证书验证设置
2. 管理虚拟机
- 查看虚拟机列表和状态
- 执行开机、关机、重启操作
- 查看虚拟机详细信息
- 管理虚拟机快照
3. 监控资源
- ESXi 主机状态和资源使用情况
- 数据存储容量和使用率统计
- 实时性能监控数据
4. 安全特性
- 基于会话的用户认证
- CSRF 保护
- 支持自签名证书连接
配置说明
开发环境配置
# config.py
class DevelopmentConfig(Config):
DEBUG = True
VSPHERE_SSL_VERIFY = False
生产环境配置
# config.py
class ProductionConfig(Config):
DEBUG = False
VSPHERE_SSL_VERIFY = True
SECRET_KEY = 'your-production-secret-key'
环境变量配置
| 变量名 | 描述 | 默认值 |
|---|---|---|
| SECRET_KEY | Flask 密钥 | dev-secret-key-change-in-production |
| VSPHERE_HOST | vCenter 服务器地址 | - |
| VSPHERE_USER | vCenter 用户名 | - |
| VSPHERE_PASSWORD | vCenter 密码 | - |
| VSPHERE_PORT | vCenter 端口 | 443 |
| VSPHERE_SSL_VERIFY | SSL 证书验证 | False |
| FLASK_HOST | Flask 监听地址 | 0.0.0.0 |
| FLASK_PORT | Flask 监听端口 | 5001 |
| FLASK_DEBUG | Flask 调试模式 | False |
故障排除
常见问题
-
连接 vCenter 失败
- 检查网络连接和防火墙设置
- 确认 vCenter 服务器地址和端口
- 验证用户名和密码格式
-
SSL 证书错误
- 在测试环境中可以禁用 SSL 验证
- 生产环境建议使用有效证书
-
权限不足
- 确认用户具有足够的 vSphere 权限
- 检查 vCenter 角色和权限设置
日志调试
启用调试模式查看详细日志:
export FLASK_DEBUG=true
python run.py
开发说明
添加新功能
- 在
app/views.py中添加路由 - 在
app/templates/中创建模板 - 在
app/forms.py中定义表单(如需要) - 在
app/vsphere_client.py中添加 API 调用
贡献代码
- Fork 项目
- 创建功能分支
- 提交更改
- 发起 Pull Request
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
支持
如有问题或建议,请提交 Issue 或联系维护者。
注意: 本项目仅用于学习和开发目的,生产环境使用请确保遵循安全最佳实践。