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 仓库联动。到时候你会发现,自动化构建的大门才刚刚打开。