在 Ubuntu 上,Jenkins 可通过插件、全局工具配置、凭证管理与流水线将各类开发与运维工具纳入 CI/CD,覆盖代码管理、构建、测试、容器化与部署的全流程。
环境与基础配置
- 安装 Java 11(Jenkins 运行依赖):sudo apt update && sudo apt install openjdk-11-jdk -y
- 安装 Jenkins(官方仓库):
- wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
- echo “deb http://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list
- sudo apt update && sudo apt install jenkins -y
- sudo systemctl start jenkins && sudo systemctl enable jenkins
- 访问控制台:打开浏览器进入 http://<服务器IP>:8080,按向导完成解锁与插件安装(初始密码位于 /var/lib/jenkins/secrets/initialAdminPassword)
- 基础配置:进入 Manage Jenkins → Manage Plugins 安装所需插件;在 Manage Jenkins → Global Tool Configuration 配置 JDK、Git、Maven/Gradle/NodeJS 等工具路径;在 Manage Jenkins → Manage Credentials 统一管理凭据。
常用工具集成清单
| 工具 |
主要用途 |
关键插件 |
配置要点 |
| Git / GitHub / GitLab |
拉取源码、触发构建 |
Git plugin |
在“源码管理”选择 Git,配置仓库 URL 与凭据;GitHub 可用 Webhook 触发构建 |
| Maven / Gradle / NodeJS |
构建与依赖管理 |
Maven Integration、NodeJS |
在“全局工具配置”设置安装路径/自动安装;在任务中使用对应构建命令 |
| Docker |
构建与运行容器、环境一致性 |
Docker Pipeline、Docker plugin |
安装 Docker;将 jenkins 用户加入 docker 组并重启 Jenkins;在 Pipeline 中使用 agent { docker ‘image’ } |
| 测试框架(如 pytest) |
单元/集成测试 |
JUnit 插件 |
构建步骤执行测试并输出 JUnit XML;添加“Publish JUnit test result report”步骤展示报告 |
| TestRail |
测试结果管理 |
TestRail 插件 |
在“系统配置”设置 TestRail URL/认证;在任务“构建后操作”发布测试结果 |
| Ansible / SSH |
远程主机配置与部署 |
SSH Pipeline Steps |
在“凭证”中添加 SSH 私钥;在 Pipeline 使用 sshCommand/sshPut 等步骤 |
| Docker Hub / 镜像仓库 |
镜像推送与拉取 |
Docker Pipeline |
在“凭证”中添加 Docker Hub 账号;使用 docker.withRegistry 推送镜像 |
| Gerrit |
代码评审与门禁 |
Gerrit 相关插件 |
结合 Gerrit Trigger 实现提交后自动构建与评审门禁(可选) |
| 以上插件与配置项覆盖了 Ubuntu 上最常见的集成场景,可按需增减。 |
|
|
|
两个快速上手示例
最佳实践与排错要点
- 使用 Jenkinsfile 管理流水线,纳入代码仓库,便于版本化与复用;在任务中选择“Pipeline script from SCM”。
- 统一在 Manage Credentials 管理凭据(SSH 密钥、用户名/密码、Docker Hub 等),避免明文写在任务中。
- 触发策略建议:代码提交触发(GitHub/GitLab Webhook 或轮询),必要时配合 Gerrit Trigger 做代码评审门禁。
- 容器化运行 Jenkins 时,挂载 /var/run/docker.sock 或将 jenkins 加入 docker 组,以便容器内调用宿主机 Docker;注意权限与安全性。
- 插件安装与加速:优先使用官方仓库在线安装;如需加速,可在插件管理的高级选项中更换 update-center.json 为国内镜像源(如清华源)。