随着公司项目的增加,慢慢jenkins上面的项目也会越来越多,怎么让相应的开发只看到自己对应的项目,在jenkins中就需要进行角色控制。

一、下载插件

在jenkins中角色控制也需要相应的插件进行,我们首先需要下载插件Role-based Strategy。

直接安装就好了

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_权限分配

二、启用角色控制

在下载好插件后,需要在管理中找到安全

在安全中将授权策略改成Role-based Authorization Strategy,就是基于角色去进行控制

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_权限分配_02


在启用后,在管理中就可以找到另一把小黄锁就是管理和分配角色

我们需要点击它来进行权限的分配

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_开发人员_03

三、项目分配

在进行权限分配之前,为了更加直观的了解,我先准备一些项目,并通过不同的视图进行管理

简单的已a和b两个项目进行管理

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_jenkins rolebase_04


并通过视图,将a、b区分开来

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_正则表达式_05


那么怎么让开发用户只看到自己项目的测试项目,一般线上版本是不让开发人员看到的,只需要让a的开发人员看到a的测试项目,看不到线上项目,同时也不能看到b项目,这时就需要对权限进行分配了。

当然在生产中也是前后端分开的,前端开发人员看到自己的前端项目,后端看到自己的后端项目,更加区分开来,这里就不细说了,方法都是差不多的

四、权限分配

权限分配主要有三点,分为管理角色、分配角色和角色策略宏,其中最后一个是帮助参考,我们只需要对前两项进行配置就好。

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_正则表达式_06

1.管理角色

这里是最高权限的一个权限管理,配置某个用户的权限,类似于gitlab中的master和developer

首先建立一个开发角色devlop,这里需要给开发read的权限是他全局可读

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_jenkins rolebase_07

2.项目角色

在配置好管理角色后,就可以对项目角色进行划分

项目角色可以通过正则表达式,来达到给不同项目分配不同权限的作用

这里b.*test 表示以b开头,以test结尾的项目

现在插件 允许点击正则表达式来查看这个表达式中可以看到的项目,比如现在的b.*test能看到的就是图上这两个项目。

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_正则表达式_08

3.分配角色

在建立好管理角色和项目角色后,进行保存,就可以分配角色,进行管理了。

在分配角色前首先要创建用户,可以让管理员在用户管理直接进行创建,也可以开放注册权限,让公司的小伙伴自己创建

这里就不多说了,我先准备好了xiaoxing和daxing两个用户

首先在global roles对用户进行赋权,让用户具有开发的权限

然后再根据不用的项目进行不同的权限划分,例如xiaoxing负责a项目,daxing负责b项目

分配好了保存退出

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_开发人员_09

五、验证

在配置好了,当然要去看看我们的配置有没有生效,登录两个用户进行查看

登录xiaoxing用户

只能看到a项目中的测试项目,构建也是没有问题的

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_开发人员_10


登录daxing用户

也是只能看到b项目的测试项目,看不到其他项目

jenkins rolebase jenkins rolebasedauth 分配用户权限报错_开发人员_11