术语澄清与适用范围
- 业界并无通用的“CentOS Trigger”这一官方工具名称,实际讨论多指两类场景:
- 使用preupgrade-assistant + redhat-upgrade-tool(或 centos-upgrade-tool-cli)触发的跨小版本/跨大版本升级流程(常见于CentOS 7环境)。
- 在Jenkins流水线中通过 Generic Webhook Trigger 等“触发器”驱动部署/升级作业。
- 另有可能与监控告警中的Zabbix Trigger混淆,它并非系统升级工具。下文分别给出两类场景的升级注意事项。
CentOS 系统升级注意事项(preupgrade-assistant + redhat-upgrade-tool 流程)
- 备份与回滚预案
- 完整备份关键数据与配置(含数据库、应用配置、证书、密钥),并准备回滚方案(快照/克隆/离线备份)。
- 检查并妥善留存 /etc/fstab 等挂载与引导关键配置,避免升级后挂载异常。
- 版本与仓库准备
- 确认当前系统版本:cat /etc/redhat-release;评估升级路径与目标仓库可达性。
- 导入必要 GPG 密钥,确保升级包可信;按需调整 /etc/yum.repos.d/ 中的升级专用仓库配置(如创建 upgrade.repo)。
- 兼容性与风险评估
- 安装并运行 preupgrade-assistant 做兼容性检查,逐项处理不兼容项后再继续。
- 规划维护时间窗口,尽量在低峰时段执行,减少对业务影响。
- 执行升级与重启
- 使用 redhat-upgrade-tool / centos-upgrade-tool-cli 执行升级;升级完成后重启系统。
- 验证新系统版本:cat /etc/redhat-release。
- 内核与引导管理
- 建议保留多内核共存,在 GRUB 菜单中可选择旧内核回退,避免新内核异常导致无法启动。
- 必要时调整 GRUB_TIMEOUT / GRUB_DEFAULT 并重新生成 GRUB 配置。
- 升级后验证与观测
- 使用 uname -r 确认新内核生效;查看系统日志与关键服务状态,确保业务正常。
Jenkins 触发器升级注意事项(Generic Webhook Trigger 等)
- 触发条件与分支策略
- 通过 GenericTrigger 的 regexpFilterText / regexpFilterExpression 精确匹配分支(如仅允许 dev/test),避免误触发生产部署。
- 支持“Webhook 优先、手动参数兜底”的策略,确保可控性。
- 安全与认证
- 使用自定义 Token 校验来源可信;凭据(如 SSH 私钥 / Git 凭据)通过 credentialsId 管理,避免明文泄露。
- 对外部请求可启用 silentResponse 与日志打印策略,便于审计与排错。
- 版本与回滚
- 在流水线中固化构建与部署的版本号/镜像标签;保留最近几次可回滚版本的制品与元数据。
- 对数据库变更采用迁移脚本版本化与可回滚方案,与代码发布解耦。
- 运行环境与依赖
- 明确 JDK 与 Jenkins 版本矩阵,避免因组件升级导致插件/脚本不兼容。
- 在升级前于预发布/灰度环境完整演练一次全链路流程。
常见陷阱与排查要点
- 内核升级导致无法启动
- 先评估硬件与驱动兼容性,尽量在测试环境验证;保留旧内核以便 GRUB 回退。
- 仓库与版本指向错误
- 跨小版本升级或需要固定版本时,注意 $releasever 与镜像源配置;必要时指向 vault.centos.org 的对应版本仓库。
- 升级中断或失败
- 检查 YUM 错误日志定位依赖/冲突;必要时回滚或切换到稳定镜像源重试。
- 升级后重点验证 /etc/fstab 挂载、网络与关键业务服务状态。