核心功能
linux-patcher 是一款面向 DevOps/SRE 的自动化服务器维护工具,通过 SSH 批量执行 Linux 系统补丁(apt/yum/dnf/zypper)与 Docker 容器更新。核心工作流分为两类:
- Host-Only 模式:仅更新系统包,适合无容器环境或最小停机场景
- Full 模式:系统包 + Docker 镜像拉取 + 容器重建,适合完整维护窗口
显著优点
1. PatchMon 深度集成:自动查询待更新主机列表,免维护静态配置
2. 智能 Docker 探测:自动检测 Docker 安装状态与 Compose 文件路径,动态决策更新策略
3. 多发行版支持:Ubuntu(实测)、Debian、RHEL/Alma/Rocky/CentOS、Amazon Linux、SUSE 全覆盖
4. 安全设计:SSH 密钥认证 + 无密码 sudo 限制特定命令(apt/docker/dnf 等),无密码存储
5. 灵活执行:支持自动批量、单主机手动、多主机配置、Dry-run 预览、并行执行
潜在局限与风险
- 测试覆盖不均:仅 Ubuntu 经过完整测试,其余发行版基于文档实现,生产环境需先行验证
- 需要预配置:目标主机需预配 SSH 密钥、无密码 sudo、可选 PatchMon Agent,首次部署门槛较高
- 无自动回滚:容器更新失败后需人工介入查看日志并手动回滚
- 不处理内核重启:检测
/var/run/reboot-required但不自动重启,需人工安排维护窗口 - PatchMon 依赖:自动模式依赖外部 PatchMon 服务可用性,单点故障风险
适合人群
- 管理 10+ 台 Linux 服务器的中小运维团队
- 使用 Docker Compose 部署的容器化基础设施
- 需要夜间自动化补丁但不希望容器频繁重启的场景(可
--skip-docker)
常规风险
| 风险等级 | 场景 | 缓解措施 |
|---------|------|---------|
| **高** | Docker 容器重建导致服务中断 | 使用 `--skip-docker` 或安排在低峰期 |
| **中** | 补丁兼容性问题导致应用故障 | Dry-run 预览 + staging 环境先行验证 |
| **中** | PatchMon 不可用导致自动化中断 | 保留手动配置文件作为 fallback |
| **低** | sudo 配置过宽导致权限提升 | 严格限制 `/etc/sudoers.d/` 命令白名单 |
使用建议
首次使用务必阅读 SETUP.md 完成安全加固,生产环境建议从 --dry-run 开始,配合 PatchMon 监控实现闭环运维。