eNMS-automation/eNMS

GitHub: eNMS-automation/eNMS

eNMS 是一个企业级厂商无关的网络自动化平台,提供基于工作流的配置管理、验证和脚本执行服务。

Stars: 837 | Forks: 160

eNMS

一个企业级、厂商无关的网络自动化平台。

# 简介 eNMS 是一个厂商无关的NMS,专为构建基于工作流的网络自动化解决方案而设计。 [![eNMS](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f06eec8d15111827.png)](https://www.demo.enms.io/workflow_builder) 它涵盖了网络自动化的以下几个方面: - **配置管理服务**:使用 Git 进行备份、配置变更与回滚。 - **验证服务**:使用 Netmiko 和 NAPALM 验证设备状态数据。 - **Ansible 服务**:存储和运行 Ansible Playbook。 - **REST 服务**:发送带有可变 URL 和 Payload 的 REST 调用。 - **Python 脚本服务**:任何 Python 脚本都可以集成到 Web UI 中。eNMS 会自动在 UI 中为脚本的输入参数生成表单。 - **工作流**:服务可以在工作流中以图形方式组合在一起。 - **调度**:服务和工作流可以安排在稍后时间启动,或使用 CRON 表达式定期运行。 - **事件驱动的自动化**:服务和工作流可以通过 REST API 触发。 # 主要功能 ## 1. 网络创建 您的网络拓扑可以手动创建,或从外部的 Source of Truth(OpenNMS、LibreNMS 或 Netbox)导入。 创建后,它会显示在一个可排序和可搜索的表格中。 一个仪表板通过动态图表提供您网络的图形概览。 清单 | 仪表板 :----------------------------------:|:-----------------------------------: [![清单](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3c1043b034111828.png)](https://www.demo.enms.io/table/device) | [![仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6e37b4f371111829.png)](https://www.demo.enms.io/dashboard) - 文档:_[网络创建](https://enms.readthedocs.io/en/latest/inventory/network_creation/)_ ## 2. 网络可视化 eNMS 可以在世界地图(Google Map 或 Open Street Map)上显示您的网络。 每个设备都显示在其 GPS 坐标位置。 网络拓扑图可以使用清单中的设备和链路创建,并添加标签以提高清晰度。 地理视图 | 网络构建器 :-------------------------------:|:-------------------------------: [地理视图](https://www.demo.enms.io/visualization/geographical_view) | [网络构建器](https://www.demo.enms.io/visualization/logical_view) - 文档:_[网络可视化](https://enms.readthedocs.io/en/latest/inventory/network_visualization/)_ ## 3. 服务创建 eNMS 附带了一些利用 `ansible`、`requests`、`netmiko`、`napalm` 等库执行简单自动化任务的“默认服务”。然而,任何 Python 脚本绝对可以转变为一个服务。如果您的 Python 脚本接受输入参数,eNMS 将自动在 Web UI 中生成一个表单。 服务可以组合成一个工作流。 [![工作流构建器](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f06eec8d15111827.png)](https://www.demo.enms.io/workflow_builder) - 文档:_[服务](https://enms.readthedocs.io/en/latest/automation/services/)_, _[工作流系统](https://enms.readthedocs.io/en/latest/automation/workflows/)_ ## 5. 配置管理 eNMS 可用作设备配置备份工具,类似于 Oxidized/Rancid,具有以下功能: - 轮询网络设备并将最新配置存储在数据库中 - 存储可以从设备 CLI 获取的任何操作数据(例如 ``show version``、``get facts`` 等) - 在所有配置中搜索任何文本或正则表达式 - 将设备配置下载到本地文本文件 - 使用 REST API 支持返回指定设备的配置 - 将所有配置导出到远程 Git 仓库(例如 Gitlab) - 查看配置不同版本之间的 Git 风格的差异 搜索配置 | 比较配置 :--------------------------------------------:|:-------------------------------: [![搜索](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/bb49b3f916111831.png)](https://www.demo.enms.io/table/configuration) | [![历史记录](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5bc632da01111831.png)](https://www.demo.enms.io/table/configuration) - 文档:_[配置管理](https://enms.readthedocs.io/en/latest/inventory/configuration_management/)_ ## 6. 事件驱动的自动化 虽然服务可以直接从 UI 立即运行,您也可以安排它们在稍后时间运行,或通过定义频率或 CRON 表达式定期运行。所有计划任务都显示在日历中。 [![日历](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5c132c74e6111832.png)](https://www.demo.enms.io/table/task) 服务也可以通过编程方式执行:eNMS 拥有一个 REST API 和一个 CLI 接口,可用于创建、更新和删除任何类型的对象,也可用于触发服务的执行。 - 文档:_[调度](https://enms.readthedocs.io/en/latest/automation/scheduling/)_ # 开放核心版与企业版 eNMS 有两个版本:一个**开放核心**版本(此仓库),和一个具有生产部署高级功能的**企业版**。
| 功能 | 开放核心版 | 企业版 | |:-------:|:---------:|:------------------:| | 工作流自动化 | ✓ | ✓ | | 配置管理 | ✓ | ✓ | | 网络可视化 | ✓ | ✓ | | REST API | ✓ | ✓ | | **多用户认证** | ✗ | ✓ | | **基于角色的访问控制** | ✗ | ✓ | | **高级调度器** | ✗ | ✓ | | **TACACS+ / LDAP / Duo 2FA** | ✗ | ✓ | | **服务导入/导出** | ✗ | ✓ | | **迁移机制** | ✗ | ✓ | | **变更回滚/审计追踪** | ✗ | ✓ | | **管理面板** | ✗ | ✓ | | **生产脚本与工具** | ✗ | ✓ | | **专业支持** | ✗ | ✓ |
## 企业版 ### 安全与认证 - **多用户认证系统**:完整的登录页面和安全会话管理 - **企业级认证**:支持 TACACS+、LDAP 和 Duo 2FA 集成 - **基于角色的访问控制 (RBAC)**:为用户或组配置细粒度权限 - 控制谁可以查看、编辑或运行特定的工作流和服务(按用户或按团队) - 定义对设备、配置和网络资源的访问级别 - **用户与组管理**:用于管理团队和权限的综合管理界面 ### 高级自动化 - **调度器应用**:用于工作流自动化的高级调度功能 - 使用 crontab 表达式或特定日期/时间进行调度 - 计划任务的集中视图和控制(带有日历界面) - **服务导入/导出**:将服务和工作流打包为 `.tgz` 归档文件 - 在不同的 eNMS 实例之间共享自动化解决方案 - 创建关键工作流的备份归档 - 在开发和生产环境之间传输工作流 - **变更跟踪与回滚**:具有回滚能力的完整审计追踪 - 每次修改都被记录(谁在何时更改了什么) - 一键回滚到任何先前状态 ### 企业管理 - **管理面板**:用于系统管理的集中式仪表板 - 服务器健康监控和性能指标 - Worker 进程管理和负载均衡 - **迁移机制**:用于在 eNMS 版本之间升级的无缝备份和迁移机制 - 以 YAML 或 JSON 格式导出/导入您的整个数据库 - 版本控制的迁移确保升级期间的数据完整性 - **生产工具**:企业级的维护脚本和工具 - 数据库优化和备份管理 - 高级 SQL 调试和日志分析 # 架构 [![eNMS 系统概述](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/bfcd7ffd40111832.png)](https://enms.readthedocs.io/en/latest/) # 快速安装 ``` Install python 3.12+ (earlier versions not supported) git clone https://github.com/afourmy/eNMS.git cd eNMS pip3 install -r build/requirements/requirements.txt export FLASK_APP=app.py flask run --host=0.0.0.0 Log in (default credentials: admin / admin) ```
标签:Ansible集成, Docker 部署, Git备份, IT运维, NAPALM, Netmiko, REST API, Socks5代理, TCP SYN 扫描, Web UI, 事件驱动, 仪表板, 任务调度, 企业级软件, 供应商无关, 地图显示, 工作流引擎, 库存管理, 系统提示词, 网络安全研究, 网络自动化, 网络运维, 逆向工具, 验证服务