https://github.com/lijianqiao/network_manage
一个使用 FastAPI 和现代 Python 技术栈构建的高性能网络自动化平台
https://github.com/lijianqiao/network_manage
fastapi network-automation nornir python scrapli websocket
Last synced: about 1 month ago
JSON representation
一个使用 FastAPI 和现代 Python 技术栈构建的高性能网络自动化平台
- Host: GitHub
- URL: https://github.com/lijianqiao/network_manage
- Owner: lijianqiao
- License: mpl-2.0
- Created: 2025-07-04T14:55:31.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-04T15:04:53.000Z (12 months ago)
- Last Synced: 2025-07-04T16:41:23.958Z (12 months ago)
- Topics: fastapi, network-automation, nornir, python, scrapli, websocket
- Language: Python
- Homepage:
- Size: 465 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🌐 网络设备自动化管理平台
基于 FastAPI + Scrapli + Nornir 构建的企业级网络设备自动化管理平台,支持多厂商网络设备的统一管理、配置部署、监控运维和批量操作。
## 🚀 核心功能
- **多厂商支持** - Cisco、华为、H3C、Juniper等主流设备
- **批量操作** - 支持设备、区域、分组的批量任务执行
- **配置管理** - 配置备份、部署、差异对比、自动回滚
- **WebSocket CLI** - 实时CLI交互,支持多设备并发连接
- **连接池管理** - 异步连接池、并发控制、资源优化
- **安全加密** - Fernet密码加密、凭据安全管理
## 🏗️ 技术栈
- **FastAPI** - 现代化异步Web框架
- **Tortoise ORM** - 异步ORM,支持PostgreSQL
- **Scrapli** - 专业网络设备SSH/Telnet连接驱动
- **Nornir** - 网络自动化任务调度框架
- **WebSocket** - 实时CLI交互
- **UV** - 现代化Python包管理器
## 📁 项目结构
```
network_manage/
├── app/ # 应用核心代码
│ ├── main.py # FastAPI应用入口
│ ├── api/v1/endpoints/ # API路由端点
│ ├── core/ # 核心组件
│ ├── network_automation/ # 网络自动化核心模块
│ ├── models/ # 数据模型
│ ├── schemas/ # Pydantic模型
│ ├── services/ # 业务服务层
│ ├── repositories/ # 数据访问层
│ └── utils/ # 工具模块
├── templates/textfsm/ # TextFSM解析模板
├── docs/ # 项目文档
├── tests/ # 测试文件
├── pyproject.toml # UV项目配置
└── README.md
```
## 🚀 快速开始
### 📋 环境要求
- **Python 3.13+**
- **PostgreSQL 12+**
- **UV** - Python包管理器
### 📥 安装部署
```bash
# 1. 克隆项目
# github
git clone https://github.com/lijianqiao/network_manage
# gitee
git clone https://gitee.com/lijianqiao/network_manage
cd network_manage
# 2. 安装依赖
uv sync
# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
# 4. 初始化数据库
uv run python init_db.py
# 5. 启动应用
uv run python start.py
```
### 🌐 访问应用
- **API文档**: http://127.0.0.1:8010/api/docs
- **网络终端**: http://127.0.0.1:8010/api/ws/cli/terminal
- **健康检查**: http://127.0.0.1:8010/health
## 🎯 主要API端点
### 网络自动化API
```bash
POST /api/automation/ping # Ping连通性测试
POST /api/automation/command # 执行单条命令
POST /api/automation/commands # 批量执行命令
POST /api/automation/backup # 配置备份
POST /api/automation/deploy # 配置部署
POST /api/automation/device-info # 设备信息获取
GET /api/automation/connection-stats # 连接池状态
```
### WebSocket CLI
```bash
WS /api/ws/cli/{host_ip} # WebSocket CLI连接
GET /api/ws/cli/sessions # 获取CLI会话状态
GET /api/ws/cli/terminal # 网络终端界面
```
### 设备管理API
```bash
GET /api/devices # 获取设备列表
POST /api/devices # 创建设备
GET /api/devices/{id} # 获取设备详情
PUT /api/devices/{id} # 更新设备
DELETE /api/devices/{id} # 删除设备
GET /api/regions # 区域管理
GET /api/device-groups # 设备分组管理
GET /api/brands # 设备品牌管理
```
## 📄 许可证
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。