CentOS服务器上搭建Jenkins+maven+GitLab(一)——环境搭建

2).实验环境

4核8G CentOS7.9.2009 192.168.142.102/103 GitLab(yum/docker)

1核1G CentOS7.9.2009 192.168.142.104 Jenkins+maven+git

1核1G CentOS7.9.2009 192.168.142.105 测试服务器

所有服务器均已设置阿里云yum源,并且yum -y install epel-release,关闭SELinux和防火墙。

(3).104服务器安装Jenkins+maven+git

Jenkins下载地址:https://www.jenkins.io/download/

maven下载地址:https://maven.apache.org/download.cgi

Jenkins文档相当完善,可以根据需要对照操作手册自行更改安装方式,我这里使用war包直接安装。maven我这里采用二进制安装包。

1)安装JDK

根据下载的Jenkins 2.555.1 LTS版本,以及Jenkins与java版本对应关系,所以需要JDK21或JDK25。详细对照表如下:

二进制安装JDK25

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[root@localhost ~]# java -version

-bash: java: 未找到命令//我的系统没有,如果显示的是openjdk version ...,那就是openjdk

#如果存在jdk,可以使用这个命令卸载自带的openjdk

[root@localhost ~]# yum -y remove java-*

#解压二进制文件

[root@localhost ~]# tar xvf jdk-25_linux-x64_bin.tar.gz -C /usr/local/

#新增环境变量文件,配置环境变量

[root@localhost ~]# vim /etc/profile.d/jdk25.sh

exportJAVA_HOME=/usr/local/jdk-25.0.3

exportCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#加载环境变量

[root@localhost ~]# . /etc/profile.d/jdk25.sh

#测试

[root@localhost ~]# java -version

java version"25.0.3"2026-04-21 LTS

Java(TM) SE Runtime Environment (build 25.0.3+9-LTS-195)

Java HotSpot(TM) 64-Bit Server VM (build 25.0.3+9-LTS-195, mixed mode, sharing)

2)上传Jenkins的war包并启动

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#因为我是最小化安装的CentOS,所以需要安装字体库,否则会报错

[root@localhost ~]# yum install -y fontconfig dejavu-sans-fonts

#第一次可以不用后台启动,方便查看管理员密码,可以不加--httpPort=8080,默认端口就是8080

[root@localhost ~]# java -jar jenkins.war --httpPort=8080

......

[LF]> *************************************************************

[LF]> *************************************************************

[LF]> *************************************************************

[LF]>

[LF]> Jenkins initial setup is required. An admin user has been created and a password generated.

[LF]> Please use the following password to proceed to installation:

[LF]>

[LF]> b58d54388531438da14c3319465a36d6

[LF]>

[LF]> This may also be found at:/root/.jenkins/secrets/initialAdminPassword

[LF]>

[LF]> *************************************************************

[LF]> *************************************************************

[LF]> *************************************************************

......

浏览器访问192.168.142.104:8080,会有一段时间初始化,请耐心等待。进入到如下页面后,将管理员密码输入其中并继续。

之后会来到自定义插件的页面,如下。这里点击“选择插件来安装”,然后取消所有插件,来跳过插件的安装,后面更换国内镜像源再安装。我这边先将建议插件记录下来,方便后面安装:Folders、OWASP Markup Formatter、Build Timeout、Credentials Binding、Timestamper、Workspace Cleanup、Ant、Gradle、Pipeline、GitHub Branch Source、Pipeline: GitHub Groovy Libraries、Pipeline Graph View、Git、SSH Build Agents、Matrix Authorization Strategy、LDAP、Email Extension、Mailer、Dark Theme、Localization: Chinese (Simplified)。

接着进入创建管理员的页面,如下,创建管理员。最下面的Full name其实是填写Email地址,我这里就随意填写了。

默认配置,之后就直接进入使用。

3)Jenkins配置国内镜像源

新版本:右上角设置-->Plugins(插件)-->Advanced settings(高级设置)-->Update Site(升级站点),老版本:Manage Jenkins --> Manage Plugin --> Advanced --> Update Site,我这里使用华为开源镜像站的地址(用之前先用浏览器打开一下,有时候地址会变换)。注意:记录一下默认值下面有用,我这里是https://updates.jenkins.io/update-center.json。

维护方镜像中心地址
Jenkins 中文社区https://updates.jenkins-zh.cn/update-center.json
清华大学https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
华为开源镜像站(可用)https://mirrors.huaweicloud.com/jenkins/update-center.json
腾讯https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json
ustchttps://mirrors.ustc.edu.cn/jenkins/updates/update-center.json
bithttps://mirror.bit.edu.cn/jenkins/updates/update-center.json
lework(可用)https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/tencent/update-center.json
https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/tsinghua/update-center.json
https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/ustc/update-center.json
https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/bit/update-center.json

接着修改服务器中Jenkins的配置文件,由于我们没有使用nohup所以另起一个窗口。注意:第二条sed更具上面的默认值,有些版本是“updates.jenkins.io/download”,有些版本是“updates.jenkins-ci.org/download”。最好进去看一下完整的地址,然后根据原来的地址找到国内源对应的地址,国内源有时候地址结构会变化。

1

2

[root@localhost ~]# sed -i 's/www.google.com/www.baidu.com/g' .jenkins/updates/default.json

[root@localhost ~]# sed -i 's/updates.jenkins.io\/download/mirrors.huaweicloud.com\/jenkins/g' .jenkins/updates/default.json

回到第一个窗口,重启Jenkins服务。我们这里直接<Ctrl>+<C>终止服务,然后用nohup后台启动,并添加开机启动。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

#添加开机启动

[root@localhost ~]# vim jenkinsStart.sh

#!/bin/bash

# 导入java和jenkins的环境变量,系统启动的时候无法读取配置文件的。

exportJAVA_HOME=/usr/local/jdk-25.0.3

exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

exportPATH=${JAVA_HOME}/bin:$PATH

exportJENKINS_HOME=/root/.jenkins

cd/root

nohupjava -jar jenkins.war --httpPort=8080 >nohup.out 2>&1 &

[root@localhost ~]# chmod +x jenkinsStart.sh

[root@localhost ~]# vim /lib/systemd/system/jenkins.service

[Unit]

Description=Jenkins

After=network.target

[Service]

Type=forking

#这里是启动脚本

ExecStart=/root/jenkinsStart.sh

ExecReload=

#这里是停止脚本,没有就留空

ExecStop=

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[root@localhost ~]# systemctl daemon-reload

#启动jenkins

[root@localhost ~]# systemctl start jenkins

#开机启动jenkins

[root@localhost ~]# systemctl enable jenkins

Createdsymlinkfrom/etc/systemd/system/multi-user.target.wants/jenkins.service to/usr/lib/systemd/system/jenkins.service.

[root@localhost ~]# systemctl status jenkins

● jenkins.service - Jenkins

Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)

Active: active (running) since Fri 2026-05-29 22:25:46 CST; 14s ago

Main PID: 1279 (java)

CGroup:/system.slice/jenkins.service

└─1279 java -jar jenkins.war --httpPort=8080

May 29 22:25:46 localhost.localdomain systemd[1]: Starting Jenkins...

May 29 22:25:46 localhost.localdomain systemd[1]: Started Jenkins.

最后网页重新登录,新版本:右上角设置-->Plugins(插件)-->Available plugins(可用插件)-->搜索需要的插件进行安装,老版本:Manage Jenkins --> Manage Plugin -->Available-->搜索需要的插件进行安装。把上面推荐的插件全部安装完成,并且再安装Maven Integration(IDEA或Eclipse本地开发环境)、Pipeline Maven Integration(CI/CD流水线)、Publish Over SSH(通过SSH发送构建产物--jar包)。注意:有些时候找不到插件到“Installed Plugins”(已安装的插件)里面看一下,有些安装时会被作为依赖已经安装上去了。

将需要的插件安装完成后,地址栏输入192.168.142.104:8080/restart,重启Jenkins。

注意:有一些插件比较新时,国内源没有及时更新,就会报404错误,可以在搜索后直接点击进入官方插件仓库下载.hpi文件,然后使用“高级”标签页上传部署,最后重启。我这里以Credentials Binding插件为例,报错如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

java.io.FileNotFoundException: https://mirrors.huaweicloud.com/jenkins/plugins/credentials-binding/725.ve52b_2328a_fde/credentials-binding.hpi

at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1696)

at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)

at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)

at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1362)

Caused: java.io.IOException: Failed to load https://mirrors.huaweicloud.com/jenkins/plugins/credentials-binding/725.ve52b_2328a_fde/credentials-binding.hpi to/root/.jenkins/plugins/credentials-binding.jpi.tmp

at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1377)

Caused: java.io.IOException: Failed to download from https://mirrors.huaweicloud.com/jenkins/plugins/credentials-binding/725.ve52b_2328a_fde/credentials-binding.hpi

at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1404)

at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:2053)

at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2381)

at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:2027)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)

at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)

at java.base/java.lang.Thread.run(Thread.java:1474)

安装本地插件方式:Advanced settings(高级设置)-->部署插件(Deploy Plugin)-->选择文件-->部署(Deploy)

4)部署maven

maven是工具,只要将二进制包解压即可

1

2

3

4

5

6

7

[root@localhost ~]# tar xvf apache-maven-3.9.15-bin.tar.gz -C /usr/local/

[root@localhost ~]# /usr/local/apache-maven-3.9.15/bin/mvn -v

Apache Maven 3.9.15 (98b2cdbfdb5f1ac8781f537ea9acccaed7922349)

Maven home:/usr/local/apache-maven-3.9.15

Java version: 25.0.3, vendor: Oracle Corporation, runtime:/usr/local/jdk-25.0.3

Default locale: en_US, platform encoding: UTF-8

OS name:"linux", version:"3.10.0-1160.el7.x86_64", arch:"amd64", family:"unix"

5)安装git

1

[root@localhost ~]# yum -y install git

(4).102/103服务器安装GitLab

这里我就直接跳过了,详细查看:CentOS服务器上docker搭建GitLab | CentOS服务器上yum/rpm搭建GitLab CE

(5).105服务器安装JDK

根据开发需求选择JDK的版本,我这里使用二进制版本的JDK25

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[root@localhost ~]# java -version

-bash: java: 未找到命令//我的系统没有,如果显示的是openjdk version ...,那就是openjdk

#如果存在jdk,可以使用这个命令卸载自带的openjdk

[root@localhost ~]# yum -y remove java-*

#解压二进制文件

[root@localhost ~]# tar xvf jdk-25_linux-x64_bin.tar.gz -C /usr/local/

#新增环境变量文件,配置环境变量

[root@localhost ~]# vim /etc/profile.d/jdk25.sh

exportJAVA_HOME=/usr/local/jdk-25.0.3

exportCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#加载环境变量

[root@localhost ~]# . /etc/profile.d/jdk25.sh

#测试

[root@localhost ~]# java -version

java version"25.0.3"2026-04-21 LTS

Java(TM) SE Runtime Environment (build 25.0.3+9-LTS-195)

Java HotSpot(TM) 64-Bit Server VM (build 25.0.3+9-LTS-195, mixed mode, sharing)