Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

时间:2023-12-12 11:21:20
  • 一、Jenkins按角色授权

当一个公司的开发分为多个组别,或者是多个项目等等。用于公司内部测试,让开发人员自行构建测试,此时不可能让所有的开发都在公用一个构建,这样变得很混乱,为了解决这一问题,jenkins也提供了角色授权的机制。每个开发有着对应的账号和权限,可以自行新建,构建,测试,发布等。角色授权需要安装的插件:Role-based Authorization Strategy

(1)系统配置
系统管理-->Configure Global Security-->访问控制-->授权策略-->Role-Base Strategy

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

(2)新建用户
系统管理-->管理用户-->新建用户
这里创建一个java用户和php用户,用于区分php和java项目的构建

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

(3)用户关联自己相关job,无法查看其他的job

建立项目角色,并对该用户进行项目的授权(包括Job的构建,取消,配置,创建,删除等等)
注意此处的添加,一个是Role是随意填写,最好规范点。Pattern是正则匹配,比如此处匹配的是所有包含Java开头的项目和php开头的项目

系统管理-->Manage and Assign Roles --> Manage Roles-->Project roles

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

配置好项目的权限,使用java用户或php用户登录是没有新建项目的权限,如需新增这样的权限,需要在Global roles中进行配置,新增一个角色(比如新增一个可以创建新项目的权限角色:new job,可登录查看的角色read):

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

 然后系统管理-->Manage and Assign Roles -->Assign Roles进行添加对应的权限

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

使用php登录查看,可以看到php用户可以看到对应php开头的项目,但是没有新建项目的权限:

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

  • 二、Jenkins的Pipeline(代码流水线管理)

Pipeline(代码流水线管理)

Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目。如果使用jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦。所以出现pipeline名词。

(1)下载pipeline。这样只需要构建一个项目,就会帮我们完成所有相关项目

搜索插件pipeline 

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

等待安装完成 

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

(2)新建一个pipeline的项目

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

配置pipeline项目,使用Pipeline script脚本:

node {
stage 'build php-deploy'
build 'php-deploy'
stage 'build java'
build 'java'
}

为了解决各个项目的依赖关系关系,使用pipeline的脚本进行控制。
第一步构建php项目,第二步构建java项目。Pipeline的脚本语法在Pipeline Syntax中有展示

Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

Pipeline Syntax的使用,如图:

 Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

立即构建p1的项目,如图:

 Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline

代码流水线的功能就介绍到此!