前言

本篇文章将介绍Jenkins的安装及项目配置的具体方法,同时增加Jenkins用户管理的部分。

其中有些操作步骤则直接给出的参考文档,通过参考文档即可完成相应的步骤。

Jenkins中文官网:Jenkins 用户手册

一、Jenkins安装

Jenkins由Java语言编写而成,安装包即是一个war包。因此,Jenkins的运行启动依赖于Java环境,同时,它是免安装的。

1.1 安装JDK

1.2 安装 Maven(后端打包需要)

这里需要注意一下,如果你不需要通过Jenkins来打包后端项目,则无需安装Maven。

1.3 安装Git

1.4 安装NodeJS(前端打包需要)

这里需要注意一下,如果你不需要通过Jenkins来打包前端项目,则无需安装NodeJS。

1.5 安装Jenkins

1.5.1 下载Jenkins的war包

官网地址如下:http://mirrors.jenkins.io/war-stable/latest/jenkins.war

1.5.2 上传至Linux并运行

注意:

1、你应当准备一个目录用于存放Jenkins的war包和日志文件,例如:/usr/local/jenkins。

2、你使用哪个用户启动Jenkins,Jenkins就会在该用户的home目录下创建一个隐藏文件夹 .jenkins。该文件夹的占用的磁盘空间较大,需要注意磁盘空间挂载情况。同时该目录是可以更改的,具体参考百度。

3、并非任何用户均可启动Jenkins,你应当选择一个拥有项目所在目录权限的用户启动,避免在Jenkins更新项目的时候出现Linux权限问题。

cd /usr/local/jenkins
## 创建Jenkins运行日志文件
touch jenkins.log
## 启动Jenkins
nohup java -jar jenkins.war --httpPort=9999 > jenkins.log 2>&1

1.5.3 完成安装

浏览器访问 https://127.0.0.1:9999,即可访问jenkins,随后完成解锁。

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维

完成解锁之后,选择安装推荐的Jenkins插件,等待完成初始化。

1.5.4 设置中文

二、Jenkins配置

当你安装完成Git、Maven、NodeJS之后,如果你需要让Jenkins使用它们,则还需要安装对应的插件。

2.1 下载必要的插件

点击 系统管理 --> 插件管理 --> 可选插件,搜索安装即可。

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_02

2.1.1 安装Git

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_03

2.1.2 安装NodeJS

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_04

2.1.3 安装Maven

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins 配置 gitlab_05

安装完成之后,重启Jenkins。

重启方式:Jenkins访问地址,拼接 /restart 即可。

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_06

2.2 配置JDK、Git等

点击 系统管理 --> 全局工具配置。

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_07

 2.2.1 配置JDK(填写JDK安装路径即可)

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_08

 2.2.2 配置Git(无需填写Git地址,Git命令全局可用)

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_09

  2.2.3 配置Maven(填写Maven安装路径即可)

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_10

  2.2.4 配置NodeJS(填写NodeJS安装路径即可)

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_11

三、项目配置

3.1 配置前端项目

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins 配置 gitlab_12

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_13

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_14

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_15

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins 配置 gitlab_16

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_17

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_18

## 防止打包结束后进程被杀死
BUILD_ID=DONTKILLME
## 下载依赖
npm run install
## 打包
npm run build
## 删除原项目文件
rm -rf /home/data/tomcat-9.0.63/webapps/frontend
## 复制新打包的项目文件,注意当前所在的目录即为jenkins的工作目录,例如:/root/.jenkins/workspace/frontend。当然你也可以使用全路径。
cp -R dist /home/data/tomcat-9.0.63/webapps/frontend
## 重启tomcat
/home/data/tomcat-9.0.63/bin/shutdown.sh && /home/data/tomcat-9.0.63/bin/startup.sh

3.2 配置后端项目

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_19

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_20

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_21

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_22

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins 配置 gitlab_23

 这里需要注意一下,如果是单体项目,直接 clean install 即可。如果是多模块项目,需要打包对应的子模块,则可以参考如下命令:

clean install -pl scs-nacos -am -amd -Pdev -Dmaven.test.skip=true

表示只打包项目的scs-nacos子模块及其依赖的模块。

clean install -pl scs-biz/scs-biz-device -am -amd -Pdev -Dmaven.test.skip=true

表示只打包项目的scs-biz子模块的scs-biz-device子模块及其依赖的模块。

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_24

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_25

## 防止打包结束后进程被杀死
BUILD_ID=DONTKILLME
PID=`jps -l | grep -w "jenkins_test" | awk '{print $1}'`
if [ !$PID ]; then
	echo "=========== 项目未启动!"
else
    ## 停止项目
	kill -9 $PID
fi
sleep 1
## 复制,并替换jar文件
cp /root/.jenkins/workspace/backend/target/backend.jar /home/jenkins/backend.jar
## 重启项目
nohup java -jar backend.jar > backend.log 2>&1 &

 3.3 启动项目

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_26

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_27

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_28

四、用户权限管理

4.1 用户管理

4.1.1 Jenkins用户列表

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_29

在Jenkins的用户列表中,可以看到所有用户(jenkins用户、有提交记录的git用户)。

4.1.2 用户管理

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_30

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins 配置 gitlab_31

在 系统管理 --> 管理用户 模块中,才能管理jenkins用户。

4.2 权限管理

4.2.1 下载权限控制插件

Jenkins 自身的权限控制颗粒度较大,无法适应细粒度的权限管理。因此,我们通过

 Role-based Authorization Strategy 插件来做权限控制。

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_32

4.2.2 使用权限控制插件

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins 配置 gitlab_33

修改授权策略,使用Role-Based管理授权。 

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_34

4.2.3 创建角色、配置权限

jenkins 配置 gitlab jenkins 配置node jdk mavwn_运维_35

jenkins 配置 gitlab jenkins 配置node jdk mavwn_jenkins_36

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_37

4.2.4 给用户分配角色

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_38

jenkins 配置 gitlab jenkins 配置node jdk mavwn_用户管理_39

jenkins 配置 gitlab jenkins 配置node jdk mavwn_安装配置_40