SwitchOps 交换机巡检
Windows 打包部署
使用 PyInstaller 构建 SwitchOps 单文件 EXE,并按推荐目录交付配置和输出数据。
构建环境
Windows EXE 应在 Windows 系统中构建。准备:
- Python 3.10 或更高版本;
- 项目完整源码;
- 能够安装
requirements.txt依赖的网络或离线包; - 足够的磁盘空间用于 PyInstaller 的
build/和dist/目录。
安装构建依赖
在项目根目录打开 PowerShell:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
确认 PyInstaller 可用:
pyinstaller --version
执行打包
运行项目提供的脚本:
.\build_exe.bat
脚本使用的关键参数:
| 参数 | 作用 |
|---|---|
--onefile | 生成单文件 EXE。 |
--windowed | 运行 GUI 时不额外打开控制台窗口。 |
--name | 输出名称为 SwitchOps巡检工具。 |
--icon | 存在 assets/app.ico 时设置程序图标。 |
--add-data | 将构建时的 config、assets 作为打包数据加入。 |
构建产物位于:
dist\SwitchOps巡检工具.exe
推荐交付目录
SwitchOps/
├── SwitchOps巡检工具.exe
├── config/
│ ├── devices.yaml
│ ├── commands.yaml
│ └── settings.yaml
└── outputs/
当前程序在 EXE 模式下从 EXE 所在目录读取
config/。交付时必须把三个 YAML 配置文件放在 EXE 同级的 config 目录中,不能只复制 EXE。outputs/ 可以不预先创建,程序首次运行时会自动创建;提前创建有助于设置访问控制和备份策略。
首次部署检查
- 将完整目录复制到目标 Windows 电脑的固定位置,例如
D:\SwitchOps。 - 从示例创建
config\devices.yaml,填写一台测试设备。 - 确认
commands.yaml和settings.yaml存在。 - 确认当前用户对程序目录和输出目录有读写权限。
- 检查到交换机管理 IP 的路由和 TCP 22 端口。
- 双击 EXE,加载设备清单。
- 先巡检单台设备,再执行全量巡检。
- 检查原始回显、Excel、日志和
history.db。
配置与版本更新
升级 EXE 时建议:
- 退出正在运行的程序。
- 备份整个
config/和outputs/history.db。 - 用新版本替换 EXE。
- 对比新旧
commands.yaml、settings.yaml,合并新增配置项。 - 不要用示例文件覆盖真实
devices.yaml。 - 使用一台测试设备完成回归验证。
配置文件与 EXE 分开管理,便于更新程序时保留设备清单,也避免把真实账号密码硬编码到发布物中。
杀毒软件误报
PyInstaller 单文件程序会在运行时释放组件,部分安全软件可能产生误报。建议:
- 从可信构建机生成发布物并记录源码版本。
- 对发布物计算并留存 SHA-256 摘要。
- 保留依赖清单和构建日志,便于安全人员复核。
- 由终端安全管理员按流程检测后加入白名单。
- 不要直接关闭杀毒软件或让普通用户自行绕过安全策略。
PowerShell 计算摘要:
Get-FileHash .\dist\SwitchOps巡检工具.exe -Algorithm SHA256
源码模式部署
如果需要使用 CLI、计划任务或更方便地调试日志,可以保留源码和虚拟环境:
SwitchOps/
├── .venv/
├── switch_ops/
├── config/
├── outputs/
├── cli.py
├── gui.py
├── main.py
└── requirements.txt
源码模式更适合运维管理机;单文件 EXE 更适合固定功能的一线桌面交付。