Jenkins持续集成


1 版本介绍

  官网:https://www.jenkins.io/

1.1 LTS(长期支持版)

  这个版本,简直就是稳如老狗。Jenkins团队每隔12周才会挑一个出来,说“嘿,这个版本够稳,拿去用吧”。它就像是经过千锤百炼的战士,啥大风大浪没见过,所以特别适合那些对稳定性要求超高的大公司。你想想,大公司里项目多、流程复杂,要是用个不稳定的工具,那不得天天出bug,烦都烦死了。LTS版本就不会,它能稳稳地帮你把事儿干完,而且还会给你打补丁,修复那些关键的漏洞。就像你有个老朋友,虽然不咋爱说话,但关键时刻绝对靠得住!

1.2 Weekly(每周版)

  Weekly版本呢,就完全不一样了。这货是个急性子,每周都更新一次,就像个追风少年,啥新鲜玩意儿都想试试。它里面全是最新最炫的功能,要是你是个爱折腾的开发者,每周版绝对能让你眼前一亮。不过呢,因为更新太快,偶尔也会有点小毛病。但这不是问题,因为社区里的人也爱折腾,遇到问题大家一起解决,很快就能搞定。Weekly版本特别适合那些小团队或者个人开发者,你们不是天天想搞点新花样嘛,这个版本就能满足你。

  总之,LTS和Weekly,一个稳一个快,看你啥时候用啥。要是你图个安稳,就选LTS;要是你想尝鲜,Weekly绝对是个不错的选择。

2 支持的平台

  Jenkins 是一个跨平台的自动化服务器,支持多种操作系统和平台。以下是Jenkins支持的主要平台:

  1.Linux

   Debian/Ubuntu:通过apt包管理器安装。

   Fedora:通过dnf包管理器安装。

   Red Hat Enterprise Linux及其衍生版本(如AlmaLinux、Rocky Linux、Oracle Linux、CentOS):通过yumdnf包管理器安装。

  2.Windows

   可以通过安装程序安装,也可以使用WAR文件手动安装。

  3.macOS

   可以通过Homebrew安装,也可以使用WAR文件手动安装

  4.Docker

   Jenkins可以作为Docker容器运行,支持在macOS、Linux和Windows上使用Docker。

   本次采用的是Rocky Linux 9.6,用rpm的方法安装Jenkins LTS版本

3 部署Jenkins

3.1 环境介绍

操作系统 IP地址 Jenkins版本
Rocky 9.6 192.168.8.10 2.516.3

3.2 向系统添加Jenkins官方的仓库

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

#如果上面的jenkins软件包下载速度过慢,可以考虑下载国内加速的包
https://mirrors.nju.edu.cn/jenkins/redhat-stable

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade -y
sudo systemctl daemon-reload

3.3 安装Jenkins

  从仓库中,安装Jenkins依赖,然后再安装Jenkins

sudo yum install fontconfig java-21-openjdk -y 
sudo yum install jenkins
[root@vm ~]# sudo yum install jenkins -y
......
Installed:
  jenkins-2.516.3-1.1.noarch

sudo systemctl daemon-reload

3.4 启动Jenkins服务

# 启动Jenkins  可以使用以下命令使 Jenkins 服务在启动时启动:
sudo systemctl enable jenkins

# 使用以下命令启动 Jenkins 服务:
sudo systemctl start jenkins

# 可以使用以下命令检查 Jenkins 服务的状态:
sudo systemctl status jenkins

# 如果一切都已正确设置,应该会看到如下输出:
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-06-22 16:19:01 +03; 4min 57s ago
...

[root@vm ~]#  sudo systemctl enable jenkins --now
Created symlink /etc/systemd/system/multi-user.target.wants/jenkins.service → /usr/lib/systemd/system/jenkins.service.

# 看看起来了没,发现初始密码放在/var/lib/jenkins/secrets/initialAdminPassword了,而且看到它监听了8080端口
[root@vm ~]# sudo systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; preset: disabled)
     Active: active (running) since Sun 2025-09-21 10:32:37 CST; 49s ago
   Main PID: 90970 (java)
      Tasks: 50 (limit: 24532)
     Memory: 543.7M
        CPU: 16.204s
     CGroup: /system.slice/jenkins.service
             └─90970 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

Sep 21 10:32:24 vm jenkins[90970]: [LF]> This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
......

4 开通防火墙

# 如果您安装了防火墙,则必须将 Jenkins 添加为例外。 您必须在下面的脚本中更改为要使用的端口。 端口是最常见的。YOURPORT8080
YOURPORT=8080
PERM="--permanent"
SERV="$PERM --service=jenkins"

firewall-cmd $PERM --new-service=jenkins
firewall-cmd $SERV --set-short="Jenkins ports"
firewall-cmd $SERV --set-description="Jenkins port exceptions"
firewall-cmd $SERV --add-port=$YOURPORT/tcp
firewall-cmd $PERM --add-service=jenkins
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

5 验证Jenkins安装

  Jenkins是基于Java的,我们看看java是否安装,Jenkins是否能打开

[root@vm ~]# java --version
openjdk 21.0.8 2025-07-15 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.8.0.9-1) (build 21.0.8+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.8.0.9-1) (build 21.0.8+9-LTS, mixed mode, sharing)

[root@vm ~]# jenkins --version
2.516.3

5.1 安装后设置向导

  使用其中一个过程下载、安装和运行 Jenkins 后 (使用 Jenkins Operator 安装除外),安装后设置向导开始。

  此设置向导将引导完成几个快速的“一次性”步骤来解锁 Jenkins,使用插件对其进行自定义并创建第一个管理员用户通过它,可以继续访问 Jenkins。

  1.解锁Jenkins

  首次访问新的 Jenkins 控制器时,系统会要求使用自动生成的密码。

  浏览到(或您为其配置的任何端口 安装时的 Jenkins)并等待 解锁 Jenkins 页面出现。

  可以直接打开浏览器,输入http://你的IP:8080/

看到让我们输入密码,从上面的日志中,我们可以看到密码所在

  2.看到让我们输入密码,从上面的日志中,我们可以看到密码所在

[root@vm ~]# sudo cat /var/lib/jenkins/secrets/initialAdminPassword
8e774f07b51544609e78351026b6353f

  注意

   命令:将在控制台上打印密码。sudo cat /var/lib/jenkins/secrets/initialAdminPassword

   如果使用官方镜像在 Docker 中运行 Jenkins,则可以使用它在控制台中打印密码,而无需执行到容器中。jenkins/jenkinssudo docker exec ${CONTAINER_ID or CONTAINER_NAME} cat /var/jenkins_home/secrets/initialAdminPassword

  3.在解锁 Jenkins页面上,将此密码粘贴到 Administrator password 字段,然后单击继续。

  注意:Jenkins 控制台日志指示位置(在 Jenkins 主目录中) 也可以在其中获取此密码。此密码必须在安装新Jenkins的向导中使用,然后才能访问 Jenkins的主用户界面。此密码还用作默认管理员帐户的密码 (用户名为“admin”)

5.2 使用插件自定义Jenkins

  解锁 Jenkins 后,自定义 Jenkins 页面 出现。在这里,可以安装任意数量的有用插件作为一部分初始设置。

  单击显示的两个选项之一:

   安装推荐的插件 - 安装推荐的插件集,基于最常见的用例。

   选择插件来安装 - 选择最初要安装的插件集安装。当您首次访问插件选择页面时,建议的 默认情况下,插件处于选中状态。

  如果不确定需要什么插件,请选择安装推荐的插件。 可以在以后安装(或删除)其他 Jenkins 插件,通过 Jenkins 中的管理 Jenkins > 插件页面操作。

  设置向导显示正在配置的 Jenkins 的进度以及您的 选择的一组正在安装的 Jenkins 插件。这个过程可能需要一些时间。

  插件的安装可能需要很久,用国内加速站安装比较快

# 先看看Jenkins的家目录在哪儿
[root@vm ~]# grep jenkins /etc/passwd
jenkins:x:988:988:Jenkins Automation Server:/var/lib/jenkins:/bin/false
[root@vm ~]# cd /var/lib/jenkins
[root@vm jenkins]# ll
total 40
-rw-r--r--.  1 jenkins jenkins 1660 Sep 21 10:32 config.xml
-rw-r--r--.  1 jenkins jenkins  156 Sep 21 10:32 hudson.model.UpdateCenter.xml
-rw-r--r--.  1 jenkins jenkins  370 Sep 21 11:28 hudson.plugins.git.GitTool.xml
-rw-------.  1 jenkins jenkins 1680 Sep 21 11:28 identity.key.enc
-rw-r--r--.  1 jenkins jenkins  171 Sep 21 10:32 jenkins.telemetry.Correlator.xml
drwxr-xr-x.  2 jenkins jenkins    6 Sep 21 10:32 jobs
drwxr-xr-x.  2 jenkins jenkins   32 Sep 21 11:28 logs
-rw-r--r--.  1 jenkins jenkins 1037 Sep 21 10:32 nodeMonitors.xml
drwxr-xr-x. 91 jenkins jenkins 8192 Sep 21 11:28 plugins
-rw-r--r--.  1 jenkins jenkins   64 Sep 21 10:32 secret.key
-rw-r--r--.  1 jenkins jenkins    0 Sep 21 10:32 secret.key.not-so-secret
drwx------.  2 jenkins jenkins  164 Sep 21 11:28 secrets
drwxr-xr-x.  2 jenkins jenkins  149 Sep 21 11:28 updates
drwxr-xr-x.  2 jenkins jenkins   24 Sep 21 10:32 userContent
drwxr-xr-x.  3 jenkins jenkins   56 Sep 21 10:32 users

# 进去看看更新都有啥 用Google测试能不能链接?还链接updates这个国内很慢的网址?nonono
[root@vm jenkins]# cd updates/
[root@vm updates]# ls
default.json  hudson.plugins.gradle.GradleInstaller  hudson.tasks.Ant.AntInstaller  hudson.tasks.Maven.MavenInstaller
[root@vm updates]# cat default.json | jq . | head -n 20
{
  "connectionCheckUrl": "https://www.google.com/",
  "core": {
    "buildDate": "Sep 15, 2025",
    "name": "core",
    "sha1": "l4VMHLt+V/i3zWN9LUAxSywlBxY=",
    "sha256": "gbOrzA8kzqSOdO/+FS9p3F8NiA7cDCc3xhRGs8WZLAA=",
    "size": 87500304,
    "url": "https://updates.jenkins.io/download/war/2.516.3/jenkins.war",
    "version": "2.516.3"
  },
  "deprecations": {
    "BlameSubversion": {
      "url": "https://github.com/jenkinsci/jenkins/pull/5320"
    },
    "CFLint": {
      "url": "https://github.com/jenkins-infra/helpdesk/issues/2089"
    },
    "DotCi": {
      "url": "https://www.jenkins.io/security/plugins/#suspensions"
      
# 换成国内的,不过服务重启后就没有了,可以后面在页面上配置的   无论是否更换都可以安装成功,无非时间长短的问题
sed -i 's|https://updates.jenkins.io/download|https://mirrors.nju.edu.cn/jenkins|g' default.json
sed -i 's|https://www.google.com|https://www.baidu.com|g' default.json

5.3 创建管理员用户并登录

  最后,Jenkins 会要求创建第一个管理员用户。

  1.当“创建第一个管理员用户”页面出现时,请指定您的详细的管理员用户信息,然后单击保存并完成。

  2.当出现 Jenkins 已准备就绪页面时,单击 开始使用 Jenkins。

   此页面可能表示 Jenkins 已准备就绪!相反,请单击 Restart。

   如果页面在一分钟后没有自动刷新,请使用的网络浏览器手动刷新页面。

  3.如果需要,请使用刚刚使用的用户的凭据登录 Jenkins 创建后,您就可以开始使用 Jenkins 了!

  确认服务器URL:

  成功登录到主界面:


文章作者: 罗宇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 罗宇 !
  目录