Jenkins 配置即代码与插件治理
验证:未记录
- 适用版本
- 未记录
- 验证范围
- 尚未登记验证记录。
JCasC(Jenkins Configuration as Code,Jenkins 配置即代码)管理控制节点设置;Jenkinsfile 管流水线。两者都必须通过代码审查,仓库不能包含密码。
1. 建立可重复部署输入#
先完成 生产部署,将以下文件纳入平台仓库:
| 文件 | 管什么 |
|---|---|
| Dockerfile、plugins.txt | 核心、Java、插件组成的不可变镜像 |
| jenkins.yaml | 执行器、登录方式、授权、站点地址 |
| compose.yaml | 持久卷、资源、网络、秘密挂载 |
| versions.env | 经验证的基础镜像和最终镜像 digest;不放凭据 |
下载配置 中 ${JENKINS_BOOTSTRAP_PASSWORD} 由 /run/secrets/JENKINS_BOOTSTRAP_PASSWORD 文件提供。首次启动只允许 bootstrap-admin 登录,匿名用户无权限;接入企业身份后保留独立受控的紧急访问方案,不能删除唯一管理员。
2. 锁定整个交付物#
plugins.txt 固定顶层插件版本,依赖插件仍可能变化;生产晋级同一个最终镜像 digest,不在每个环境重新构建。在 Manage Jenkins → Plugins → Installed 中导出/记录实际完整插件版本,并与核心、Java、最终镜像 digest、配置提交号一起归档。
持久卷中的旧插件可能覆盖预装版本:停止在线随意更新插件,更新前对照实际插件清单;不要为解决差异直接删除 plugins 目录。恢复时也必须使用对应 Home 快照。
3. 验证、上线与恢复#
- 用空白 Home 在隔离环境启动候选镜像,秘密使用测试值,禁止连接生产 Agent/Webhook。
- 进入 Manage Jenkins → Configuration as Code,检查加载结果;确认 Controller 执行器为 0,匿名访问被拒绝,管理员能够登录。
- 在该页面检查候选配置;支持热加载的设置通过 Reload 应用,涉及插件、核心、Java 的变更走重启窗口。
- 运行真实项目测试流水线,确认 Git 拉取、Agent 创建、凭据绑定、锁、归档均正常。
- 备份生产 Home,在维护窗口晋级同一镜像和配置提交;验证失败按 恢复步骤 还原。
导出功能仅用于比较结构;导出文件可能含敏感配置,不直接提交。插件字段依版本变化,以当前实例的配置参考为准。日常设置从平台仓库变更,界面紧急修改需立即回写复核。
4. Kubernetes Controller 的边界#
动态 Agent 的集群内认证要求 Controller 已位于 Kubernetes。虚拟机安装可先使用 SSH Agent。迁移时使用 官方 Helm Chart,固定 Chart 版本并检查:单副本、持久卷、备份、服务账号名称、0 执行器、内部服务、TLS、插件清单及配置来源。
先在隔离命名空间渲染审查,再连接测试 Agent。不能让两个 Controller 同时挂载同一 Home;迁移需要单独的恢复演练和切换窗口。
插件准入、依赖、升级和回退的检查清单见关键插件专题。