CentOS7安装Jenkins

安装及简单使用。

一、介绍及规划

1.1 介绍

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

部署 TLS版本。

1.2 规划

主机名 ip 系统版本 用途
jenkins-server 192.168.10.61 centos7 java17+jenkins 2.536.1

1.3 版本对应

java 版本的关系

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

Supported Java versions Long term support (LTS) release Weekly release
Java 21 or Java 25 2.541.1 (January 2026) 2.545 (January 2026)
Java 17, Java 21, or Java 25 N/A 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 2015)

二、安装

官网

  1. 安装 java 环境
1
2
3
4
5
6
7
8
cat <<EOF > /etc/yum.repos.d/adoptium.repo
[Adoptium]
name=Adoptium
baseurl=https://packages.adoptium.net/artifactory/rpm/centos/7/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.adoptium.net/artifactory/api/gpg/key/public
EOF
1
yum install temurin-17-jdk -y
1
java -version
  1. 导入key
1
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  1. 获取安装包,2.479-1.1 最低支持 JAVA17 的长期版本。
1
wget https://get.jenkins.io/redhat/jenkins-2.536-1.1.noarch.rpm
  1. 安装
1
rpm -ivh jenkins-2.536-1.1.noarch.rpm
  1. 启动
1
systemctl enable --now jenkins

三、使用

3.1 登录

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

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

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

3.2 手动安装插件

插件下载地址

镜像插件下载地址

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. 验证