Centos 7 安装Jenkins

系统环境

[root@PXC01 etc]# uname  -a
Linux PXC01 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@PXC01 etc]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

JDK 版本依赖

(官方链接)[https://www.jenkins.io/doc/book/platform-information/support-policy-java/]
使用官方的jenkins仓库,其只有2.555.1版本,对应的JDK版本需要:Java 21 or Java 25

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/rpm-stable/jenkins.repo

由于yum仓库中没有 25 版本的JDK,只能手动安装,下载地址:https://jdk.java.net/archive/

下载好之后,得到文件:openjdk-25.0.2_linux-x64_bin.tar.gz,解压到指定目录: /usr/local/lib/

tar -xvf openjdk-25.0.2_linux-x64_bin.tar.gz -C /usr/local/lib/

配置相关的Java环境:

export JAVA_HOME=/usr/local/lib/jdk-25.0.2
export PATH=${JAVA_HOME}/bin:$PATH
# 下面这行是建议补充的
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

安装

yum -y install jenkins # 安装的版本为:2.555.1

登陆密码: cat /var/lib/jenkins/secrets/initialAdminPassword
安装好了之后,使用命令启动,

systemctl enable jenkins
systemctl start jenkins

Tips: 启动时报错

Apr 05 01:36:00 PXC01 jenkins[3820]: jenkins: failed to find a valid Java installation

修改Java相关信息,兼容当前系统

此版本的 jenkins 不再默认读取 /etc/sysconfig/jenkins 文件,而是完全依赖 Systemd 的配置,要使用 Systemd 配置 Java 路径

操作步骤:

  • systemctl edit jenkins # 打开编辑器
  • 添加配置内容如下,注意是全部内容:
    [Service]
    # 指定你手动安装的 JDK 25 路径
    Environment="JAVA_HOME=/usr/local/lib/jdk-25.0.2"
    # 强制指定 Java 可执行文件路径(双重保险)
    Environment="JENKINS_JAVA_CMD=/usr/local/lib/jdk-25.0.2/bin/java"
    # 修改端口参数, 默认是 : 8080
    ExecStart=/usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins/jenkins.war --httpPort=8888
  • systemctl daemon-reload # 重载配置
  • systemctl start jenkins # 启动
  • systemctl status jenkins # 查看状态

Tips:查询的安装信息

rpm -ql jenkins

官方安装文档

https://www.jenkins.io/doc/book/installing/linux/

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/rpm-stable/jenkins.repo
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install fontconfig java-21-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload