SwitchOps 交换机巡检
快速开始
从获取源码、安装 Python 依赖到完成第一次交换机巡检。
运行方式
SwitchOps 提供两种运行方式:
| 方式 | 适合人群 | 入口 |
|---|---|---|
| 图形界面 | 日常值班和一线运维人员 | python main.py 或打包后的 EXE |
| 命令行 | 开发调试、脚本调用和批处理 | python cli.py ... |
第一次使用建议先用源码运行 GUI,确认设备配置和 SSH 连接正常后,再考虑打包为 Windows EXE。
环境要求
- Python 3.10 或更高版本。
- 可以访问交换机管理 IP 的 Windows、macOS 或 Linux 电脑。
- 交换机已经启用 SSH,默认端口为
22。 - 巡检账号能够执行所需的
display或show查询命令。 - Windows 打包 EXE 时需要 PyInstaller,项目依赖中已经包含。
获取源码
git clone https://git.95669.com/dnxk/switch-ops-netmiko.git
cd switch-ops-netmiko
如果代码通过其他开源镜像分发,也可以直接下载源码压缩包并解压到本地目录。
创建虚拟环境并安装依赖
Windows PowerShell
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
如果 PowerShell 阻止激活脚本,可以直接使用虚拟环境中的 Python:
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe main.py
macOS 或 Linux
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
Linux 如果缺少 Tkinter,需要使用系统包管理器安装对应的 Tk 支持;只使用 CLI 时不需要打开图形界面。
创建设备配置
真实设备清单使用 config/devices.yaml。先复制示例文件:
Copy-Item config\devices.example.yaml config\devices.yaml
cp config/devices.example.yaml config/devices.yaml
打开 config/devices.yaml,先保留一台测试交换机并填写真实信息:
config/devices.yaml
devices:
- name: "测试交换机"
host: "192.168.1.1"
port: 22
vendor: "huawei"
model: "S5720"
device_type: "huawei"
username: "inspect_user"
password: "请替换为真实密码"
secret: ""
need_super: false
role: "access"
location: "一楼弱电间"
enabled: true
完整字段说明见设备清单配置。
config/devices.yaml 包含真实账号密码,已经被项目的 .gitignore 忽略。不要把它提交到 Git、发送到公共群聊或打包进公开发布物。检查网络和 SSH
在 Windows PowerShell 中确认管理地址和 SSH 端口可达:
Test-NetConnection 192.168.1.1 -Port 22
在 macOS 或 Linux 中可以使用:
nc -vz 192.168.1.1 22
端口可达并不代表账号一定可用。建议先用系统 SSH 客户端登录一次,确认账号、密码和权限:
ssh inspect_user@192.168.1.1
启动图形界面
python main.py
在窗口中依次完成:
- 确认“配置文件”指向
config/devices.yaml。 - 点击“加载设备”,检查名称、IP、厂商和状态是否正确。
- 首次测试只勾选一台非核心设备。
- 点击“巡检选中设备”。
- 观察进度和日志,等待完成提示。
- 点击“打开输出目录”查看报告。
使用 CLI 完成首次巡检
python cli.py inspect --config config/devices.yaml --target 192.168.1.1
执行完成后会显示成功数、失败数和 Excel 报告路径。
检查输出
默认输出位于:
outputs/
├── history.db
└── YYYY-MM-DD/
├── logs/
│ └── app.log
├── queries/
├── raw/
│ └── 测试交换机_192.168.1.1.txt
└── reports/
└── 巡检汇总_YYYY-MM-DD_HHMMSS.xlsx
第一次运行后建议检查:
raw/中是否保存了每条巡检命令的原始回显。- Excel 中设备名称、版本、CPU、内存和接口数据是否符合设备实际情况。
logs/app.log中是否存在命令超时、权限不足或解析关注项。outputs/history.db是否已经生成。