因CentOS的生命周期于2024年6月30日结束,预计国内很多的公司还是比较习惯于使用红帽一系的发行版本,所以本文使用100%兼容Red Hat的Alma作为演示的操作系统。

下载官方的仓库文件

[root@jenkins ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2024-05-22 10:38:06--  https://pkg.jenkins.io/redhat-stable/jenkins.repo
正在解析主机 pkg.jenkins.io (pkg.jenkins.io)... 146.75.114.133, 2a04:4e42:8c::645
正在连接 pkg.jenkins.io (pkg.jenkins.io)|146.75.114.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:85
正在保存至: “/etc/yum.repos.d/jenkins.repo”

/etc/yum.repos.d/jenkins.repo               100%[===========================================================================================>]      85  --.-KB/s  用时 0s      

2024-05-22 10:38:08 (1.17 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [85/85])

导入key文件

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

更新仓库

[root@jenkins ~]# yum update
Jenkins-stable                                                                                                                                  2.5 kB/s |  28 kB     00:11    
依赖关系解决。
无需任何处理。
完毕!

首先删除系统中默认的java1.8

[root@jenkins ~]# rpm -qa|grep java
javapackages-filesystem-6.0.0-4.el9.noarch
tzdata-java-2024a-1.el9.noarch
java-1.8.0-openjdk-headless-1.8.0.412.b08-2.el9.x86_64
[root@jenkins ~]# yum remove java-1.8.0-openjdk-headless-1.8.0.412.b08-2.el9.x86_64
依赖关系解决。
================================================================================================================================
 软件包                                 架构              版本                                    仓库                        大小
================================================================================================================================
移除:
 java-1.8.0-openjdk-headless            x86_64           1:1.8.0.412.b08-2.el9                   @AppStream                 119 M

事务概要
=================================================================================================================================
移除  1 软件包

将会释放空间:119 M
确定吗?[y/N]: y
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                              1/1 
  删除    : java-1.8.0-openjdk-headless-1:1.8.0.412.b08-2.el9.x86_64                                                                     1/1 
  运行脚本: java-1.8.0-openjdk-headless-1:1.8.0.412.b08-2.el9.x86_64                                                                     1/1 
  验证    : java-1.8.0-openjdk-headless-1:1.8.0.412.b08-2.el9.x86_64                                                                     1/1 

已移除:
  java-1.8.0-openjdk-headless-1:1.8.0.412.b08-2.el9.x86_64                                                                                   

完毕!

如果java1.8不移除的话,则需要再下面的java17安装完成后,修改java的优先级。因为新版本的jenkins需要java11以上才可运行。

安装Jenkins的依赖关系软件和依赖库,然后安装

# Add required dependencies for the jenkins package
[root@jenkins ~]# yum install -y fontconfig java-17-openjdk
[root@jenkins ~]# yum install -y jenkins
上次元数据过期检查:0:01:13 前,执行于 2024年05月22日 星期三 10时44分50秒。
依赖关系解决。
==========================================================================================
 软件包                 架构                  版本                  仓库              大小
==========================================================================================
安装:
 jenkins               noarch               2.452.1-1.1          jenkins           89 M

事务概要
==========================================================================================
安装  1 软件包

总下载:89 M
安装大小:89 M
确定吗?[y/N]: y
下载软件包:
jenkins-2.452.1-1.1.noarch.rpm                                                                      1.2 MB/s |  89 MB     01:17
------------------------------------------------------------------------------------------
总计                                                                                                 1.2 MB/s |  89 MB     01:17  
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                            1/1
  运行脚本: jenkins-2.452.1-1.1.noarch                                                  1/1
  安装    : jenkins-2.452.1-1.1.noarch                                                 1/1
  运行脚本: jenkins-2.452.1-1.1.noarch                                                  1/1
  验证    : jenkins-2.452.1-1.1.noarch                                                 1/1

已安装:
  jenkins-2.452.1-1.1.noarch                                                               

完毕!

重新加载systemd管理的启动单元。

[root@jenkins ~]# systemctl daemon-reload

启动Jenkins

[root@jenkins ~]# systemctl start jenkins

查看服务的运行状态

[root@jenkins ~]# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; preset: disabled)
     Active: active (running) since Wed 2024-05-22 11:03:00 CST; 3min 19s ago
   Main PID: 12224 (java)
      Tasks: 39 (limit: 11007)
     Memory: 393.5M
        CPU: 38.318s
     CGroup: /system.slice/jenkins.service
             └─12224 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

5月 22 11:02:33 jenkins jenkins[12224]: 5035dae2dc854990be3b55e6f259a301
5月 22 11:02:33 jenkins jenkins[12224]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
5月 22 11:02:33 jenkins jenkins[12224]: *************************************************************
5月 22 11:02:33 jenkins jenkins[12224]: *************************************************************
5月 22 11:02:33 jenkins jenkins[12224]: *************************************************************
5月 22 11:03:00 jenkins jenkins[12224]: 2024-05-22 03:03:00.547+0000 [id=32]        INFO        jenkins.InitReactorRunner$1#onAttained: Comp>
5月 22 11:03:00 jenkins jenkins[12224]: 2024-05-22 03:03:00.591+0000 [id=24]        INFO        hudson.lifecycle.Lifecycle#onReady: Jenkins >
5月 22 11:03:00 jenkins systemd[1]: Started Jenkins Continuous Integration Server.
5月 22 11:03:01 jenkins jenkins[12224]: 2024-05-22 03:03:01.553+0000 [id=49]        INFO        h.m.DownloadService$Downloadable#load: Obtai>
5月 22 11:03:01 jenkins jenkins[12224]: 2024-05-22 03:03:01.555+0000 [id=49]        INFO        hudson.util.Retrier#start: Performed the act>
lines 1-20/20 (END)

在上面的状态中,有以下的内容就是启动成功

● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; preset: disabled)
     Active: active (running) since Wed 2024-05-22 11:03:00 CST; 3min 19s ago
   Main PID: 12224 (java)
      Tasks: 39 (limit: 11007)
     Memory: 393.5M
        CPU: 38.318s
     CGroup: /system.slice/jenkins.service
             └─12224 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

关闭防火前或为jenkins的8080端口添加放行规则(两者二选其一)

  • 禁用firewalld
[root@jenkins ~]# systemctl stop firewalld
[root@jenkins ~]# systemctl disable firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
  • firewalld放行8080端口
[root@jenkins ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
# 规则添加后必须reload,才能生效
[root@jenkins ~]# firewall-cmd --reload
success

通过浏览器访问http://服务器IP:8080,如果可以看见下面的界面,就是jenkins已经启动正常

接下来就是需要解锁Jenkins,在页面上已经说明了管理员密码被写入到/var/lib/jenkins/secrets/initialAdminPassword文件中。在服务器上面查看这个文件,可以得到管理员密码。

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
18f5701487434f3ba845bc2a0d1263d6

将得到的密码复制到页面的输入框中,点击【继续】

Linux下直接用仓库安装jenkins

以下的页面选择【安装推荐的插件】:

Linux下直接用仓库安装jenkins

插件的安装过程,安装过程可能稍微时间长一点。

Linux下直接用仓库安装jenkins

插件安装完成后,会提示需要创建一个管理员用户。填写相关信息后点击【保存并完成】创建管理员用户,或者点击下方的【使用admin账户继续】。这里我们就创建新的用户

Linux下直接用仓库安装jenkins 用户创建完成后的下一个页面,配置实例的URL,点击【保存并完成】

Linux下直接用仓库安装jenkins

经过上述的步骤,就完成了jenkins的各项配置,可以点击【开始使用Jenkins】按键。

Linux下直接用仓库安装jenkins

登录后的页面是下面的样子

Linux下直接用仓库安装jenkins

Jenkins的登录界面是这个样子的。

Linux下直接用仓库安装jenkins

更多的详情可以查看官方文档:https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos