用途:在 Debian/Ubuntu 服务器上搭建与配置 Jenkins,包括安装、编写声明式 Jenkinsfile、设计控制器与代理的分布式构建架构、使用 Docker 构建代理、选择插件、管理凭据与 RBAC,以及备份恢复。
安装:需先装 openjdk-17-jdk 与 fontconfig,添加 Jenkins 官方 apt 仓库后安装 jenkins,并启用服务。安装后将 jenkins 用户加入 docker 组以便使用 Docker 流水线步骤。初次访问 8080 端口,初始密码见 /var/lib/jenkins/secrets/initialAdminPassword。资料强调对外暴露前应先置于 Nginx 与 TLS 之后。
架构:控制器只负责编排、存储配置与日志,不执行构建(执行器数设为 0);构建由 SSH 代理或按需创建的 Docker 代理完成。Docker 代理使用 Docker Pipeline 插件,在 Jenkinsfile 中以 agent { docker { image ... } } 声明,每次构建使用全新容器。
Jenkinsfile:提供完整的声明式示例,包含 Checkout、Build、并行 Tests 与 Security Scan、Docker 构建与镜像扫描、制品发布、开发与生产部署以及 post 通知阶段,并演示 stash/unstash、withCredentials、sshagent、input 审批等写法。
插件:列出 Pipeline、Git、Docker Pipeline、Credentials Binding、Role-based Authorization Strategy、SonarQube Scanner、OWASP Dependency-Check、Nexus Artifact Uploader、HTML Publisher、Slack Notification、Timestamper、Build Timeout、AnsiColor 等。
凭据与安全:凭据统一存放于 Jenkins 凭据库,不在 Jenkinsfile 中硬编码;支持用户名密码、SSH 私钥、Secret text、Secret file、证书等类型,可按需集成 HashiCorp Vault。安全配置使用 Jenkins 自有用户库、关闭注册、启用基于角色的授权策略,并区分 admin、developer、viewer、deployer 权限,禁止开发者自行审批生产部署。
备份恢复:建议使用 ThinBackup 插件定时备份到 NFS、rsync JENKINS_HOME 到第二台服务器,以及虚拟机快照;恢复时停止 Jenkins、还原 JENKINS_HOME 后重启。
限制:资料未提供具体价格、性能指标或各步骤的验证结果;主机加固、Nginx 反向代理、多分支流水线、共享库等内容指向独立参考文件,正文未展开。适用前提是具备 Debian/Ubuntu 服务器与相应权限。