jenkins~权限控制
jenkins上管理的任务比较多,这时需要有一定的权限管控机制,我们选择了插件Role-based Authorization Strategy
来做这事,它支持按着项目前缀去控制你的任务,主要思想还是rbac的模式,通过角色绑定权限,通过用户来绑定角色。
安装之后
配置中心
通过jenkins Dashboard > Manage and Assign Roles
图中第一项为添加角色,第二项为分配角色到用户
注意:我们默认有admin角色,我又扩展了一个read角色,这个角色的作用是让具体项目角色
的人,看到自己的项目列表,这个read角色我们需要绑定到Anonymous
用户上,这样我们项目角色
里配置的角色就可以用了,否则会提示xxx is missing the Overall/Read permission
的错误。
项目角色的奇葩设计
为什么说它奇葩,是因为它的统配符规则,如果你想匹配dev产品管理
,那么你的统配符必须是dev产品.*
,注意是.*结尾
,多个配置资源之间使用|
分开,如下图所示:
为用户指定角色
这个就比较容易了,与我们使用的大部分软件一下,从文本框中输入用户名,再勾选角色即可。
最后,使用指定的用户名登录,就会看到自己对应权限的任务列表了
正则规则添加后可预览
正则匹配规则
- 如果将字段设置为cpp-.*,则该角色将匹配名称以开头的所有作业cpp-.
- ^git_.feature_.,以git_开头,中间任意字符,feature_后面跟任意字符
- “^upgrade_(aa|bb)_.*”,(aa|bb)可以匹配aa或者bb
- (dev.|test.),匹配dev.或者test.
- 模式区分大小写。要执行不区分大小写的匹配,请使用(?i)表示法: (?i)cpp-.*这样不区分大小写的。
- 可以使用以下表达式匹配文件夹 ^foo/bar.*
- 控制文件夹下面的子文件夹,如lind/svt文件夹,可以这样(?i)lind($|/svt.*)