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

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


1、安装Role-based Authorization Strategy插件

wKioL1dD7Kywqns3AALxTUSK9to668.png



2、配置授权策略

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

wKiom1dD7MKDwsdJAAHwRcUJrC8447.png


3、创建用户

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

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

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

wKiom1dD72XgKefwAAGoLN4JLjY840.png


3、配置Roles和授权

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


wKioL1dD8PfjJrGIAABl69DnrNE103.png

wKiom1dD8AaCEmx7AAEKomWkmdA530.png

wKioL1dD9DLhVXl0AAgfcOTYPB8162.png

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

wKioL1dD9I6RvyfVAAD5A1lQA6Q179.png

wKioL1dD9bHikeKNAAPtQkJoAks763.png


4、创建项目,登录验证

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

wKiom1dD9WvjutK_AAHFMR7ws50620.png


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

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

wKiom1dD9k_DyvtrAAFU-LP8S4Y163.png

wKioL1dD90OyX4wfAAGr2ogB0v4029.png

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