2016-05-24 14:39:57

在Jenkins中,如果你希望不同组的创建的job只对改组内的成员可见,怎么实现呢?正常情况下,每个用户登录Jenkins都能看到所有的JOB,那么如果分组管理JOB呢?

我们可以利用Role-based Authorization Strategy插件实现这一需求。


1、安装Role-based Authorization Strategy插件



2、配置授权策略

系统管理==>Configure Global Security==>访问控制==>授权策略==>选择“Role-Based Strategy”


3、创建用户

我这里创建了4个用户,teamamanager、teamamember、teambmanager、teambmember。

teamamanager为Team A的项目管理人员,teamamember为Team A的开发人员

teambmanager、teambmember分别为Team B的项目管理人员和开发人员。

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第1张图片


3、配置Roles和授权

系统管理>>Manage and Assign Roles>>Manage Roles


wKioL1dD8PfjJrGIAABl69DnrNE103.png

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第2张图片

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第3张图片

返回上一个页面,进入Assign Roles进行配置

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第4张图片

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第5张图片


4、创建项目,登录验证

用admin管理员登录Jenkins,创建几个项目,其中给Team A创建的项目为TeamAAPIService,Team B创建的项目为TeamBUserService。

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第6张图片


登录teamamanager账号,只能看到TeamAAPIService这个job,说明正则表达式过滤生效了

登录teamamember账号,也只能看到这一个job,且没有删除Project的权限

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第7张图片

Jenkins利用Role-based Authorization Strategy插件管理项目权限_第8张图片

同理Team B的情况一样的。不再截图演示。上面就是权限分别的整个过程和思路,公司有多个组就设置多个组的规则。将来有成员加入或者移除,直接在Assign Roles中添加或者删除,非常方便。



本文出自:https://blog.51cto.com/zengestudy/1782494