AI 摘要
在Rocky9上部署Jenkins 2.555.3,规划Java 25环境,完成安装、HTTPS证书配置、国内源优化,并通过参数化构建及GitLab SSH集成实现代码拉取与自动部署。

Rocky9安装Jenkins

安装及简单使用。

一、介绍及规划

1.1 介绍

Jenkins 是一个自动化部署的工具。依赖于 Java 开发的,由各种组件组成的一个自动化部署工具。

部署 TLS版本。

1.2 规划

主机名 ip 系统版本 用途
jenkins-server 192.168.10.14 Rocky9 java25+jenkins 2.555.3-1

1.3 版本对应

java 版本的关系

标注哈希和日期的详细版本

Supported Java versions Long term support (LTS) release Weekly release
Java 21 or Java 25 2.555.1 (April 2026) 2.545 (January 2026)
Java 17, Java 21, or Java 25 2.541.1 (January 2026) 2.534 (October 2025)
Java 17 or Java 21 2.479.1 (October 2024) 2.463 (June 2024)
Java 11, Java 17, or Java 21 2.426.1 (November 2023) 2.419 (August 2023)
Java 11 or Java 17 2.361.1 (September 2022) 2.357 (June 2022)
Java 8, Java 11, or Java 17 2.346.1 (June 2022) 2.340 (March 2022)
Java 8 or Java 11 2.164.1 (March 2019) 2.164 (February 2019)
Java 8 2.60.1 (June 2017) 2.54 (April 2017)
Java 7 1.625.1 (October 2015) 1.612 (May 201

二、安装

官网

  1. 安装 java25 环境
1
2
# 确认有这个包
dnf search java-25
1
dnf install java-25-openjdk-devel -y
1
java -version

​ 多版本切换

1
alternatives --config java
  1. 导入key
1
rpm --import https://pkg.jenkins.io/rpm-stable/jenkins.io-2026.key
  1. 官方 rpm 仓库
1
2
3
4
5
6
7
cat > /etc/yum.repos.d/jenkins.repo <<'EOF'
[jenkins]
name=Jenkins-stable
baseurl=https://pkg.jenkins.io/rpm-stable
enabled=1
gpgcheck=1
EOF
  1. 查看版本
1
dnf list available jenkins --showduplicates
  1. 安装指定版本
1
dnf install jenkins-2.555.3-1 -y
  1. 启动
1
systemctl enable --now jenkins

三、使用

3.1 登录

  1. 获取自动生成的密码
1
cat /var/lib/jenkins/secrets/initialAdminPassword
  1. 访问 http://192.168.10.14:8080

  2. 不自动安装插件,手动来安装

  3. 设置用户名、密码、登录

3.2 配置 https 证书

  1. 生成证书

    参考

1
2
3
4
5
step certificate create "jenkins.qx.lab" jenkins.qx.lab.crt jenkins.qx.lab.key \
--profile leaf \
--ca intermediate_ca.crt --ca-key intermediate_ca.key \
--san jenkins.qx.lab --san 192.168.10.1 \
--not-after 87600h --no-password --insecure --bundle

3.3 手动安装插件

插件下载地址

镜像插件下载地址

1
2
3
4
5
6
7
8
9
10
11
# 1.中文
localization-zh-cn

# 2. git
git

# 3. git拉取不同的版本
git parameter

# 4. gitlab webhook
gitlab
  1. 解压
1
tar -xf jenkins-2.536-plugins.tar.gz -C /var/lib/jenkins/plugins
  1. 重启 jenkins
1
systemctl enable --now jenkins

三、优化

  1. 设置为国内更新地址
1
cd /var/lib/jenkins/updates
1
2
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
  1. 修改站点为国内更新地址
1
https://mirrors.huaweicloud.com/jenkins/update-center.json
  1. 系统安装 git
1
yum install git -y
  1. 处理管理账户密码丢失问题
1
vim /var/lib/jenkins/users/admin*/config.xml 
1
<passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
此时可以使用 `123456` 来登录。

四、案例

4.1 shell的参数化构建

4.1.1 环境准备

  1. 查看 jenkins 的启动用户
1
ps -ef |grep jenkins
  1. 修改 jenkins 的启动用户
1
systemctl cat jenkins.service
1
vim /usr/lib/systemd/system/jenkins.service
1
2
3
4
[root@jenkins-server ~]# egrep -i '^user|^group' /usr/lib/systemd/system/jenkins.service
User=root
Group=root
[root@jenkins-server ~]#
1
2
sed -i 's/User=jenkins/User=root/g' /usr/lib/systemd/system/jenkins.service
sed -i 's/Group=jenkins/User=root/g' /usr/lib/systemd/system/jenkins.service
  1. 重载配置
1
systemctl daemon-reload
  1. 重启
1
systemctl restart jenkins
  1. 验证启动用户
1
ps -ef |grep jenkins

4.1.2 构建

  1. 创建两个文件夹
    • dev测试环境
    • prod 生产环境
  2. 参数化构建
1
2
3
choose
dev
prod
  1. 编写 shell 脚本
1
2
3
4
5
6
7
case "$choose" in
dev) echo "部署到测试环境" ;;
prod) echo "部署到生产环境" ;;
esac

echo "当前用户是:`whoami`"
echo "当前的路径是:`pwd`"
  1. 开始构建
1
build with parameters
  1. 观察输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Started by user admin
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/dev测试环境/001-测试shell的参数化构建
[001-测试shell的参数化构建] $ /bin/sh -xe /tmp/jenkins462237898656312433.sh
+ case "$choose" in
+ echo 部署到生产环境
部署到生产环境
++ whoami
+ echo 当前用户是:root
当前用户是:root
++ pwd
+ echo 当前的路径是:/var/lib/jenkins/workspace/dev测试环境/001-测试shell的参数化构建
当前的路径是:/var/lib/jenkins/workspace/dev测试环境/001-测试shell的参数化构建
Finished: SUCCESS

4.2 集成 GitLab

拉取代码。主要就是配置 SSH 密钥等一系列操作。使用了此开源项目,纯HTML、CSS、JS项目。

4.2.1 准备环境

  1. 安装 GitLab
  2. 设置解析
    • windows
    • jenkins-server
1
2
3
cat >> /etc/hosts << EOF
192.168.10.66 gitlab.007890.xyz
EOF
  1. 创建并上传开源项目,配置客户端与 GitLab 的SSH公钥
1
cxk-ball
1
git init
1
2
git config --local user.name "Administrator"
git config --local user.email "gitlab_admin_f4d2fd@example.com"
1
2
git add .
git commit -m "v1.0"
1
2
git remote add origin git@gitlab.007890.xyz:root/cxk-ball.git
git push origin --all

4.2.2 构建

  1. 配置 Jenkins-Server 任务
1
002-freestyle-gitlab-project
  1. 配置 ssh 格式的仓库地址
  2. 配置SSH公钥、私钥
  3. 信任远程主机
  4. 打包压缩
1
tar -zcvf /tmp/ball.tar.gz .
  1. 验证。

4.3 拉取指定代码

拉去指定分支、标签的代码

1
003-freestyle-project-git-target

4.3.1 环境准备

  1. 准备代码
1
2
3
4
5
git add .
git commit -m "v2.0"
git tag v2.0 -m 'v2.0'
git push origin --tags
git push origin --all
1
2
3
4
5
git add .
git commit -m "v3.0"
git tag v3.0 -m 'v3.0'
git push origin --tags
git push origin --all
  1. 安装插件
1
git parameter

4.3.2构建

  1. 安装插件
1
git parameter
  1. 多了一个Git参数。
1
2
3
git_tag
${git_tag}
tar -zcf /tmp/ball-${git_tag}.tar.gz .
  1. 验证