因jenkins上存有de(开发)、te(测试)等三个不同环境的项目,同时因为项目需求,需要对不同的开发及测试人员配置不同的jenkins权限,即以项目为单位,对不同人员进行不同权限配置,要求如下:
1、项目都以 jenkins 开头,分别以-de、-te 结尾,根据三类结尾可把项目分成开发、测试 项目,同时分别对应不同的项目需求人员;
2、开发人员登录jenkins只能查看并构建de项目;
3、测试人员登录jenkins只能查看并构建te项目;
说明:此文以test用户代表测试人员,对其进行权限分配并图文说明,其他需求可按部就班
前提说明
要实现权限需求,需先确保jenkins的权限插件已安装,插件名:Role-Based Strategy或者Role-based Authorization Strategy
功能实现
# Manage Jenkins->Manage Users-> 新建用户 创建test/dev/prod用户;
# Manage Jenkins -> configure Global Secrity -> 授权策略(勾选Role- Based Strategy)
# Manage Jenkins -> Manage and Assign Roles,配置权限策略;
# 选择Manage Roles,分别进行Global roles、Project roles权限配置;
ManageRoles
- Global roles是对全局的角色控制
- Project roles只针对项目进行控制,所以需要为每个项目单独添加指定的role (区别于全局,只能有项目相关权限,没有jenkins管理权限配置)
配置job pattern需要注意:prod.代表匹配以prod开头的内容
例如:如果以dev开头就写成 dev. 一定要加上"."; .*test表示以test结尾的内容项目
注:必须先进行Global roles的配置后方可对Project roles进行配置!
# Project roles中Pattern部分是通过正则匹配从而进行项目权限分配;同时hea.*代表匹配以hea开头的内容,比一般正常的正则匹配多了个点!
配置完了;
可以测一下了 用管理员登陆会显示所有的功能以及项目,用测试账号登陆只显示刚才配过的测试相关的项目,开发的账号也是一样只显示自己相关的功能