4. Jenkins 基础安装配置

说到 Jenkins,很多新手第一反应就是「装个包,下一步,下一步」。其实这里头门道不少。我个人折腾过好几轮,从最早的 war 包扔 Tomcat,到后来全上 Docker,每种方式都有它最合适的场景。这一章咱们就把安装、插件、工具配置这三块彻底理清楚。

4.1 Jenkins 的安装方式

Jenkins 的安装说白了就两种主流路线:用 Tomcat 跑 war 包,或者直接用 Docker。你想想看,选哪个取决于你团队的基础设施习惯。

4.1.1 基于 Tomcat 部署

这种方式算是经典老路。适合那些已经有成熟 Tomcat 运维体系的团队。

具体步骤:

  1. 准备好 Tomcat 9+,确保 JDK 11 以上已配置
  2. 下载 jenkins.war 放到 webapps 目录
  3. 启动 Tomcat,访问 http://localhost:8080/jenkins
  4. 从日志或指定文件获取初始管理员密码

对应的命令很简单:

wget https://get.jenkins.io/war-stable/2.440.3/jenkins.war
cp jenkins.war /opt/tomcat/webapps/
/opt/tomcat/bin/startup.sh
tail -f /opt/tomcat/logs/catalina.out

我曾经踩过一个坑:Tomcat 默认的 max-post-size 只有 2MB,插件一多上传就报错。记得改 server.xml 里的 maxPostSize 为 -1 或者大一点的值。

4.1.2 基于 Docker 部署

我个人习惯用 Docker,原因很简单——干净、可重复、好升级。特别是做 Pipeline 实验的时候,搞坏了直接删容器重来。

基础启动命令:

docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts-jdk11

你看,一行命令 Jenkins 就跑起来了。这里挂载了 jenkins_home 卷,数据不会丢。

两种方式对比:

对比项 Tomcat 部署 Docker 部署
环境依赖 需安装 JDK + Tomcat 只需 Docker 引擎
资源隔离 弱,共享宿主机 JVM 强,容器独立
升级回滚 替换 war 包 切换镜像 Tag
扩展性 需手动配反向代理 天然支持 compose/swarm
适用场景 已有 Tomcat 运维体系 云原生、容器化团队
我的建议:如果是新项目,直接上 Docker。如果是给老团队迁移,先走 Tomcat 也 OK,但计划在半年内切到容器化。

下面这张图帮你快速决定选哪种方式:

Jenkins 安装方式选择流程图 开始安装 Jenkins 已有 Tomcat? Tomcat war 部署 配合 Nginx 反向代理 Docker 容器部署 docker-compose 编排 团队规模? 10人以上? 单机 Jenkins Master Master + Agent 集群

4.2 插件管理

Jenkins 强大就强在插件生态。但插件多了也容易乱——依赖冲突、版本不对、升级炸掉到案例我见过不少。

4.2.1 插件的安装方式

有三种方式可以装插件:

  • UI 在线安装:系统管理 > 插件管理 > 可选插件,搜索安装
  • 离线安装:下载 .hpi 文件,上传到插件管理页面
  • 命令行安装:通过 Jenkins CLI 或直接丢到 plugins 目录

大规模部署时,我推荐用命令行方式,方便自动化:

# 设置环境变量
JENKINS_URL=http://localhost:8080
JENKINS_USER=admin
JENKINS_TOKEN=your_api_token

# 安装插件
java -jar jenkins-cli.jar -s $JENKINS_URL \
  -auth $JENKINS_USER:$JENKINS_TOKEN \
  install-plugin \
  blueocean \
  pipeline-stage-view \
  git \
  docker-workflow

# 重启 Jenkins 使插件生效
java -jar jenkins-cli.jar -s $JENKINS_URL \
  -auth $JENKINS_USER:$JENKINS_TOKEN \
  safe-restart

4.2.2 常见插件清单

插件名称 用途 优先级
Pipeline 核心流水线引擎 必装
Git / GitHub 代码拉取与 Webhook 必装
Blue Ocean 流水线可视化界面 推荐
Docker Pipeline Pipeline 中调用 Docker 推荐
Credentials Binding 凭证安全注入 必装
Email Extension 构建结果邮件通知 按需
切记:不要一股脑装一堆插件。我见过一个团队装了上百个插件,启动一次要 5 分钟。只装你 Pipeline 真正用到的。

4.2.3 插件管理避坑

  • 版本锁定:生产环境要把 plugins.txt 列入版本管理
  • 升级策略:先在测试 Jenkins 上升级,稳定了再推生产
  • 依赖冲突:装插件时注意看它依赖了什么版本

我曾经遇到过一次:某次升级了 Credentials 插件,结果所有 Job 里通过 WithCredentials 注入的凭据全失效了。从那以后我规定,生产环境的插件升级必须走灰度流程。

4.3 全局工具配置

工具配置是 Jenkins 真正能干活的保证。说白了就是告诉 Jenkins:「JDK 在哪」、「Maven 在哪」、「Git 在哪」。

进入路径:系统管理 > 全局工具配置。

4.3.1 JDK 配置

有两种方式:自动安装或指定本地路径。

自动安装(推荐):

# 在全局工具配置页面
# 新增 JDK
# 别名: JDK17
# 勾选 "Install automatically"
# 选择版本: jdk-17.0.9+9

本地路径配置:

# 适用于已有预装 JDK 的环境
# 别名: JDK11-Local
# 取消 "Install automatically"
# JAVA_HOME: /usr/lib/jvm/java-11-openjdk

4.3.2 Git 配置

Jenkins 默认自带一个 Git 客户端,但版本可能较老。我建议显式指定系统的 Git:

# 路径直接写 git 命令
# Name: Default
# Path to Git executable: /usr/bin/git

可以用 which git 确认路径:

which git
# 输出类似: /usr/bin/git

4.3.3 Maven 配置

和 JDK 一样,支持自动安装和本地路径:

# 自动安装
# Name: Maven3
# Install automatically
# 版本选择: 3.9.6

# 本地路径
# Name: Maven-Local
# MAVEN_HOME: /opt/apache-maven-3.9.6
小技巧:如果团队用统一工具版本,强烈建议使用自动安装。Jenkins 会在第一次使用时下载并缓存到 ~/.jenkins/tools。这样所有 Agent 节点都能拿到一致的 JDK 和 Maven 版本。

4.3.4 Docker 配置

如果 Pipeline 要用到 Docker,记得在全局工具里配置 Docker 客户端:

# Name: Docker
# Docker URL: unix:///var/run/docker.sock
# 或者远程 Docker 守护进程
# Docker URL: tcp://192.168.1.100:2375

我曾经踩过的坑:Jenkins 容器里用 Docker 时,需要挂载宿主机的 docker.sock,还要注意权限问题。如果报 Permission denied,大概率是 docker 组没加对。

4.3.5 工具配置清单示例

整理一下我个人的推荐配置:

工具 配置方式 版本 备注
JDK 自动安装 17 LTS 版本,适合生产
Maven 自动安装 3.9.6 与团队一致
Git 本地路径 系统自带 which git 确认
Docker 本地路径 最新稳定版 挂载 docker.sock

好了,Jenkins 的基础安装配置到这就差不多了。记住三件事:安装选对路子,插件只装必要的,工具版本统一。做到这三点,后面写 Pipeline 的时候就能少踩一半坑。