在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的项目管理人员和开发人员。
3、配置Roles和授权
系统管理>>Manage and Assign Roles>>Manage Roles
返回上一个页面,进入Assign Roles进行配置
4、创建项目,登录验证
用admin管理员登录Jenkins,创建几个项目,其中给Team A创建的项目为TeamAAPIService,Team B创建的项目为TeamBUserService。
登录teamamanager账号,只能看到TeamAAPIService这个job,说明正则表达式过滤生效了
登录teamamember账号,也只能看到这一个job,且没有删除Project的权限
同理Team B的情况一样的。不再截图演示。上面就是权限分别的整个过程和思路,公司有多个组就设置多个组的规则。将来有成员加入或者移除,直接在Assign Roles中添加或者删除,非常方便。