2、Jenkins环境搭建:在Linux服务器上安装Jenkins、配置JDK与Maven、初始化Jenkins插件

好,咱们正式开始动手了。

上一章聊了 Jenkins 能干什么,这一章咱们就真刀真枪地干——在 Linux 服务器上把 Jenkins 搭起来。我个人习惯用 CentOS 7 或 Ubuntu 20.04 做宿主系统,当然你用其他发行版也完全没问题,核心步骤大同小异。

2.1 安装 Jenkins:两种方式,我推荐用官方仓库

安装 Jenkins 其实就两条路:要么用官方提供的 yum/apt 仓库,要么直接下载 war 包手动跑。我在项目中遇到过用 war 包部署的场景,当时是为了在 Docker 容器里做定制化启动,但如果你是在物理机或虚拟机上搭建,我建议直接用系统包管理器,省心。

核心思路: Jenkins 是一个 Java 应用,所以前提是服务器上得有 JDK。别急着装 Jenkins,先把 Java 环境搞定。

先说说 CentOS 上的操作:

# 1. 添加 Jenkins 官方仓库
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

# 2. 安装 Jenkins
sudo yum install -y jenkins

# 3. 启动并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins

如果是 Ubuntu,命令稍微换一下:

# 1. 添加 Jenkins 官方仓库
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

# 2. 安装 Jenkins
sudo apt update
sudo apt install -y jenkins

# 3. 启动
sudo systemctl start jenkins
sudo systemctl enable jenkins

小提示: 安装完成后,Jenkins 默认监听 8080 端口。如果你服务器上已经有其他服务占用了 8080,记得改端口。怎么改?后面会讲到。

2.2 配置 JDK:别用系统自带的 openjdk,我踩过坑

Jenkins 本身对 JDK 版本有要求,目前最新的 LTS 版本需要 JDK 11 或 JDK 17。我个人习惯用 JDK 11,稳定,兼容性好。

我曾经在项目里图省事,直接用 yum install java-11-openjdk,结果后来发现某些 Jenkins 插件对 OpenJDK 的某些实现有兼容性问题,折腾了半天。所以我现在都手动安装 Oracle JDK 或者 Adoptium 的 JDK。

这里我以 Adoptium JDK 11 为例:

# 1. 下载 JDK 11
wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.21_9.tar.gz

# 2. 解压到 /usr/local
sudo tar -zxvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.21_9.tar.gz -C /usr/local/

# 3. 配置环境变量
echo 'export JAVA_HOME=/usr/local/jdk-11.0.21+9' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 4. 验证
java -version

注意: Jenkins 启动时使用的 Java 路径,默认会从 /etc/init.d/jenkins/usr/lib/jvm 里找。如果你像我一样手动安装了 JDK,记得修改 Jenkins 的配置文件,指定 JAVA_HOME

修改 Jenkins 配置文件:

sudo vi /etc/sysconfig/jenkins   # CentOS
# 或者
sudo vi /etc/default/jenkins     # Ubuntu

# 找到 JAVA_HOME 这一行,改成你的路径
JAVA_HOME=/usr/local/jdk-11.0.21+9

2.3 配置 Maven:构建 Java 项目的必备工具

Maven 的配置其实比 JDK 简单。说白了,就是下载、解压、配环境变量三步走。

我建议把 Maven 的本地仓库路径改一下,不要放在默认的 ~/.m2 下。为什么?因为 Jenkins 执行构建时,默认用户是 jenkins,它的 home 目录空间可能不够。我在项目中就遇到过因为 .m2 撑爆磁盘导致构建失败的情况。

# 1. 下载 Maven 3.8.8
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz

# 2. 解压
sudo tar -zxvf apache-maven-3.8.8-bin.tar.gz -C /usr/local/

# 3. 配置环境变量
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.8.8' >> ~/.bashrc
echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 4. 验证
mvn -version

修改 Maven 本地仓库路径:

sudo vi /usr/local/apache-maven-3.8.8/conf/settings.xml

# 在 <settings> 标签内添加:
<localRepository>/var/lib/jenkins/.m2/repository</localRepository>

小技巧: 如果你公司有私有的 Maven 仓库(比如 Nexus),记得在 settings.xml 里配置 <mirrors><servers>,这样 Jenkins 构建时就能直接拉取内部依赖,速度飞快。

2.4 初始化 Jenkins:解锁、安装插件、创建管理员

安装完 Jenkins 并启动后,打开浏览器访问 http://你的服务器IP:8080。第一次访问会看到一个解锁页面,需要输入初始密码。

初始密码在哪?

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

复制这串密码,粘贴到网页上,点击继续。

接下来 Jenkins 会问你要安装哪些插件。这里有两个选项:

  • 安装建议的插件:适合新手,Jenkins 会帮你选好常用插件。
  • 选择要安装的插件:适合老手,可以按需勾选。

我个人建议选「安装建议的插件」,因为后面你随时可以再装其他插件。不过要注意,这个安装过程可能会比较慢,因为 Jenkins 要从官方仓库下载插件包。如果你服务器网络不好,可以配置国内镜像源。

避坑指南: 我曾经在客户现场部署 Jenkins,网络特别差,插件装了半小时还没装完。后来我手动替换了插件更新中心地址,速度才上来。具体操作:进入 Jenkins 管理后台 → 插件管理 → 高级 → 修改「更新站点」的 URL 为国内镜像。

插件安装完成后,会进入管理员创建页面。设置一个用户名和密码,这个账号就是以后登录 Jenkins 的凭证。

最后一步是配置 Jenkins 的访问地址。默认会填上当前服务器的 IP 和端口,一般不用改,直接保存即可。

2.5 验证环境:跑一个简单的构建任务

环境搭好了,咱们得验证一下能不能用。创建一个 Freestyle 项目,写一个简单的构建脚本:

# 在 Jenkins 任务配置里,找到「构建」部分,选择「执行 shell」
echo "Hello, Jenkins!"
java -version
mvn -version

点击「立即构建」,看看控制台输出。如果能看到 Java 和 Maven 的版本信息,说明环境配置成功了。

小提示: 如果构建时提示 mvn: command not found,别慌。这是因为 Jenkins 执行 shell 时没有加载 ~/.bashrc 里的环境变量。解决办法是在 Jenkins 的「系统管理」→「全局工具配置」里,手动指定 Maven 的安装路径。

2.6 本章小结

嗯,到这里 Jenkins 的基础环境就搭好了。咱们做了这几件事:

  • 在 Linux 上安装了 Jenkins 并配置了开机自启
  • 手动安装了 JDK 11 并指定给 Jenkins 使用
  • 配置了 Maven 并修改了本地仓库路径
  • 初始化了 Jenkins,安装了插件,创建了管理员账号
  • 跑了一个简单的构建任务验证环境

下一章咱们会深入 Jenkins 的全局配置,包括凭证管理、节点管理、以及如何让 Jenkins 跟 Git 仓库联动。到时候你会发现,自动化构建的大门才刚刚打开。