Jenkins相关权限配置

前言:本篇博客参考了
https://www.jianshu.com/p/f1d378596a67

Jenkins权限配置

安装插件Role-based Authorization Strategy

Jenkins相关权限配置
直接安装即可。
安装完成后进入系统管理中的全局安全配置
Jenkins相关权限配置
启动安全,并在授权策略选中Role-Based Strategy
Jenkins相关权限配置
然后返回系统管理可以看到多出来一个Manage and Assign Roles
Jenkins相关权限配置
进入后有三个标签:管理角色、角色分配、角色策略宏。本篇只着重管理角色、角色分配,角色策略宏不作详细叙述(因为我也不会。。。)。

管理角色

下面引用github上Role-based Authorization Strategy的官方说明
顺便附上github连接
github:role-strategy-plugin

Global roles:全局角色
  全局角色应用于Jenkins中的任何项,并覆盖您在项目角色中指定的任何内容。也就是说,当您在全局角色中赋予角色读作业的权利时,那么这个角色就可以读所有的作业,不管您在项目角色中指定了什么。
Project roles:项目角色
  ​基于项目,可以对某一或多个项目进行给定操作的角色
Slave roles:节点角色
​  节点相关的权限

关于Project roles和Slave roles再说一点:
Jenkins相关权限配置
上图中的Pattern需要填入的是一个正则表达式,用于匹配符合条件的项目。
官方对于这一栏的解释如下:
对于项目和代理角色,您可以为匹配的项目设置正则表达式模式。旨在匹配完整商品名称的正则表达式。

  • 例如,如果将字段设置为Roger-.*,则该角色将匹配名称以开头的所有作业Roger-
  • 模式区分大小写。要执行不区分大小写的匹配,请使用(?i)表示法:upper,Roger-.*vs.lower,roger-.*vs (?i)roger-.*。不区分大小写的。
  • 可以使用以下表达式匹配文件夹 ^foo/bar.*
    英语水平有限,全靠百度翻译,有翻译不正确的地方欢迎大家指出。。

举个栗子:如果我想有一个A角色来管理所有JAVA开头的项目,那么我就创建一个A角色,Pattern就填上JAVA.*

角色分配

顾名思义:对上一步中创建的角色分配到各个用户上,使不同的用户拥有相同或不同的权限。


进入管理角色
Jenkins相关权限配置
这里我创建了两个全局角色和两个项目角色
两个项目角色分别对应两种不同的项目匹配规则
demo:对于以demo开头的项目/任务
teestManager:对应以Text开头的项目/任务
关于全局角色
每一个用户都应该有一个全局角色
其中全局角色必须要勾选的权限
Jenkins相关权限配置
如果不勾选这个权限或者没有给用户添加全局角色,那么登陆之后就只能看到这个页面
Jenkins相关权限配置
第二个点(慎重):
Jenkins相关权限配置
如图:如果在全局角色中勾选了任务的Read权限,那么这个角色就可以看到所有的项目/任务,不论是否与其有关。其他的权限也是类似的。
所以,全局角色的权限要慎重。

之后我们把这些角色都分配到不同的角色上
Jenkins相关权限配置
Jenkins相关权限配置
注意:这里test用户我没有分配任何的项目角色,全局角色也没有分配到任务可视(任务下的Read权限)。
现在看看不同用户登录后有什么区别

admin用户

Jenkins相关权限配置

ops用户

Jenkins相关权限配置

demo用户

Jenkins相关权限配置

test用户

Jenkins相关权限配置

大功告成!
如果上面有什么错误或者缺少的信息。欢迎大家提出。