jenkins2.504用户权限,不同角色操作不同job

准备条件

1、已安装jenkins2.504,不同版本界面可能会有所不同,另外不同版本的jenkins可能需要不同的jdk版本,不要随便升级jenkins版本(我就是升级后一直启动不起来,然后又安装了个jdk21才启动成功)

2、安装权限插件Role-based Authorization Strategy(操作路径Dashboard/Manage Jenkins/Plugins-Available plugins)

3、jenkins系统配置,jenkins安全中配置授权策略(Dashboard/Manage Jenkins/Security)选择Role-Based Strategy

4、已创建多个用户及多个可测试的job(该jenkins权限插件后面会根据正则匹配job来进行权限控制,所有每个job最好是根据现实意义进行前缀规范命名,比如命名规则为: 项目名称-test/prod-git仓库名称/模块名称),以便后续测试。

注意用户里User ID 和名称的区别,我这里2者不是一致的,实际使用建议User ID使用英文或用户名称的拼音。

权限配置

1、创建全局角色Dashboard/Manage Jenkins/Manage and Assign Roles/Manage Roles

全局角色拥有最高覆盖度的权限,所以一般不勾选Job里面的Read权限,不然这个全局角色就可以看到所有的job的(如果本身项目不是太敏感,让其他人员看到也无所谓的话就可以勾选)。一般普通成员给一个权限最小的全局角色即可,然后其他权限通过下面的“项目权限”来进行细化控制。

鼠标放到Role行右边的具体权限名字上面会有提示。

2、创建项目角色,同一个操作页面位于全局角色下方。(注意Pattern里面写的时候不要有引号")

3、代理节点权限Agent roles暂时用不到,不需要配置

4、给用户配置角色权限Dashboard/Manage Jenkins/Manage and Assign Roles/Assign Roles

5、查看用户权限,测试中jenkins的权限是配置刷新页面后实时生效的。灵活运用好项目权限里Pattern就能实现大多数的权限控制需求。

6、项目角色权限中Pattern使用举例;原则上来说一个job流程创建完后尽量不要修改名称,否则可能对权限匹配有影响。

 .*(?i)test.*
匹配所有名称包含 test 关键字的job,忽略test的大小写

test.*
匹配以test开头的,注意test后面的点“.”不能省略,如果test前面有内容的job也是无法匹配的

notest.*|test.*
匹配notest开头或test开头的job(注意里面的符号“|”,可以链接匹配多个job)

参考:https://blog.csdn.net/u013066244/article/details/53407985

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/jenkins-role-based-authorization/

赞赏

微信赞赏支付宝赞赏

发表评论