Jenkins的角色权限管理
现在公司的项目繁杂,项目的发版和构建不能靠人工来记忆和维护,这时jenkins来进行自动化发版或者构建就变的十分重要。
但是由于项目越来越多,不同人维护的项目之前掺杂的不同的项目,容易弄错或者管理的不便。这是我们就需要对项目进行权限管理。实现对项目用角色的权限管理。
Jenkins的权限选择
Jenkins的权限有很多,例如矩阵权限等等,但是都很复杂,而且不太好维护,我们这里推荐一个权限管理的插件,依靠角色控制实现权限管理,让我们设置不同的角色,对不同的项目进行管理。
Jenkins的角色控制依赖插件:Role-Based Strategy
如果需要域账号,这里也可以下载一个插件:Active Directory plugin
这里的二个插件可以相互配合使用。
需要到插件库下载安装,这里不在多说插件的安装。
Jenkins启动该授权策略
- 到
Manage Jenkins(系统设置)
的Configure Global Security(全局安全配置)
界面进行配置 - 在
Authorization(授权)
里面选择Role-Based Strategy(角色控制)
Jenkins的项目管理
我们在创建不同的项目的时候,需要对创建的项目名进行一些规则来取名,这样方便后面我们使用正则
来区分不同的项目,已达到我们对不同的项目的权限控制目的。
Jenkins的角色管理
在前面的项目管理的基础上,我们就可以进行角色管理
- 到
Manage Jenkins(系统设置)
的Manage and Assign Roles(角色管理配置)
界面进行配置; - 进入
Manage Roles
界面; - 在
Global roles
创建一个read
的公共角色,这个角色,只需要给Overall -> Read
的权限。让所有人都可以进到Jenkins的界面。(非常重要); - 在
Item roles
,创建不同的角色,eg:Role -> prod
、Pattern -> .*prod
正则过滤项目,并给相应的权限。
Jenkins的用户授权
前面的角色设置完成后,这时我们就可以到人员授权界面进行授权了。
- 到
Manage Jenkins(系统设置)
的Manage and Assign Roles(角色管理配置)
界面进行配置; - 进入
Assign Roles
界面; - 在
Global roles
里面,需要给AnonyMous(未注册人员)-> read
的权限; - 如果需要管理员权限,就在
3
的基础上,添加域帐号或者账号进行授权即可; - 在
Item roles
,如果需要给所有默认的登录者测试环境权限,这个可以添加一个系统默认的账户authenticated(登录账户) -> prod、sitb
等; - 如果需要添加额外人员权限,就在
5
的基础上,添加域帐号或者账号进行授权即可;
注意
Jenkins有两个内置角色
Anonymous
:尚未登录的用户
authenticated
: 登录用户
如此以来,我们这里只需配置authenticated相关权限,然后把Anonymous的权限取消掉,这样以来,所有未经登陆的用户,就无法查看任何内容啦!