jenkins版本:2.138

在使用jenkins过程中,需要控制用户的权限,比如:开发用户登录只能查看到开发环境和测试环境相关的Job,生产发布账户只能查看生产相关的Job。

前后倒腾两三次了,网上有很多文档,但是总遇到坑。趁着还记得,赶紧整理一下,记录下来。

1.安装权限管理插件

需要使用Role-based Authorization Strategy插件,安装步骤如下:
登录jenkins,选择【系统管理】–》【插件管理】–》可选插件 搜索到以后选中安装即可。在这里插入图片描述
安装好以后重启jenkins。

2.设置权限

菜单–【系统管理】—》【Manage and Assign Roles】
打开以后会有三个选项:
Manage Roles #可以理解为是用来编辑权限的
Assign Roles #用来管理用户权限的,可以理解为把编辑好的权限给用户使用
Role Strategy Macros 角色策略宏,没有用到
在这里插入图片描述

Manage Roles 管理角色

编辑全局用户权限 Global roles
管理
必须创建一个admin角色,把所有的权限都给他。
添加user角色,分配Overall(全部)的Read权限、Job(任务)的Build、Workspace权限

编辑项目权限
在这里插入图片描述
添加项目组,分配Job的Build、Read权限。可根据需要自己调整权限范围。
使用通配符配置,可保证后面添加项目时,只要按照设定的前缀作为项目名,则可以按照设定的权限显示给授权后的用户。 pattern为正则表达式,语法即为java正则表达式语法
通配符:“uat.|UAT.
意思为: 以uat开头或者UAT开头的所有

举例:
group_dev组对应的项目以dev开头,后面用户创建项目job时必须以dev开头,否则对应的授权用户无法看到项目。

需要注意的是 这里的模糊匹配的时候不能写成 “*” 要写 “.*” ,这样的话这个group_dev项目组就拥有了查看所有dev开头的项目的权限.

编辑好以后点击页面最后保存或应用即可。

Assign Roles 分配角色

全局角色,指定用户有那个用户组权限,为开发人员使用的账户赋予user角色。
在这里插入图片描述
Item roles ,指定用户有那个项目组权限
在这里插入图片描述
对于开发人员,设置group_dev 和group_uat权限。这样,开发用户可以看到dev和uat两个组的项目。

3.添加视图(重要)

网上看到文章中都未提及此步骤,这个坑让我试了好久才发现。
在管理账户中,点击标签栏“+”号添加新视图。需要注意视图名大小写要与通配符一致。
在这里插入图片描述
根据之前添加项目角色时通配符配置的前缀创建视图。一定要选择列表视图。
在这里插入图片描述

4.登录查看

使用开发人员账户登录系统可以看到设置好的视图
在这里插入图片描述
由于没有生产权限,所以视图生产中只是空
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐