Skip to content

Jaycelu/network_backup

Repository files navigation

交换机配置自动化工具

这是一个用于批量配置华为交换机的Python自动化工具。通过SSH连接,可以同时对多台交换机执行配置命令。

功能特性

  • 支持批量配置多台交换机
  • 多设备并发配置 - 支持同时配置多台设备,大幅提高效率
  • 可视化进度显示 - 实时显示配置进度和状态
  • 通过SSH安全连接
  • 自动执行配置命令序列
  • 支持华为交换机设备
  • 详细的执行日志输出
  • 智能重试机制 - 自动重试失败的设备

系统要求

  • Python 3.7+
  • Windows/Linux/macOS

快速开始

1. 克隆项目

git clone https://github.com/Jaycelu/network_backup.git
cd 交换机

2. 创建虚拟环境

# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python3 -m venv venv
source venv/bin/activate

3. 安装依赖

pip install -r requirements.txt

4. 配置设备信息

编辑 devices.json 文件,添加需要配置的交换机信息:

{
  "devices": [
    {
      "hostname": "交换机名称",
      "ip": "交换机IP地址",
      "username": "用户名",
      "password": "密码",
      "device_type": "huawei"
    }
  ]
}

5. 运行程序

python switch_config.py

程序将显示:

  • 实时进度条
  • 当前处理的设备
  • 配置状态和结果
  • 详细的统计信息

配置说明

devices.json 文件格式

每个设备需要包含以下字段:

  • hostname: 设备主机名
  • ip: 设备IP地址
  • username: SSH登录用户名
  • password: SSH登录密码
  • device_type: 设备类型(目前支持"huawei")

默认配置命令

程序默认执行以下配置命令:

  1. system-view - 进入系统视图
  2. acl name vtyallowlogin number 2024 - 进入ACL
  3. rule 55 permit source 10.128.2.3 0 - 添加ACL规则
  4. quit - 退出ACL视图
  5. quit - 退出系统视图
  6. save - 保存配置
  7. Y - 确认保存

自定义配置

如需修改配置命令,请编辑 switch_config.py 文件中的 commands 列表:

commands = [
    "sysview",
    "your_command_1",
    "your_command_2",
    "quit",
    "save",
    "Y"
]

注意事项

  1. 网络连接: 确保运行程序的机器能够访问所有交换机的IP地址
  2. SSH服务: 确保交换机已启用SSH服务
  3. 用户权限: 确保提供的用户名具有配置权限
  4. 安全考虑: 请妥善保管设备密码,建议使用环境变量或加密存储
  5. 备份配置: 执行配置前建议备份交换机当前配置

故障排除

常见错误

  1. 连接超时: 检查网络连接和交换机IP地址
  2. 认证失败: 验证用户名和密码
  3. 权限不足: 确认用户具有配置权限
  4. 命令执行失败: 检查命令语法和交换机型号兼容性

调试模式

如需查看详细的连接和命令执行过程,可以修改代码添加更多日志输出。

项目结构

交换机/
├── switch_config.py    # 主程序文件
├── devices.json        # 设备配置文件
├── requirements.txt    # Python依赖包
├── config.py          # 配置文件(可自定义参数)
├── README.md          # 项目说明文档
├── 使用说明.md        # 中文使用说明
├── test_concurrent.py # 并发测试脚本
├── devices_test.json  # 测试设备配置
├── run.bat           # Windows快速启动脚本
└── venv/             # 虚拟环境目录

许可证

本项目仅供学习和内部使用。

贡献

欢迎提交Issue和Pull Request来改进这个项目。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages