Jenkins 配置基于角色的项目权限管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins 配置基于角色的项目权限管理相关的知识,希望对你有一定的参考价值。
一、前言
Jenkins是个好东西,开发运维测试的老江湖应该都听过,在此我就不再多做介绍jenkins是个什么东西了。
jenkins自身的权限管理,无法实现用户指定显示视图或者视图中指定的jobs,之前分配的jenkins帐号是拥有所有权限的,因为担心故意或者误删job的情况。 我们使用jenkins自身的权限控制,而实现的效果用户只能构建,不能查看修改配置和删除job。虽然避免了故意或者失误删除job的情况,但是有时候开发需要修改配置,比如说更改构建的分支,或者想查看构建的参数,脚本就需要叫运维协助。对开发来说比较麻烦,对运维也很苦恼。
1、解决方法
为jenkins安装角色策略插件,通过配置角色策略可以解决上面问题。
- 每个项目分配两个账号,一个账号可以查看job配置,修改配置,构建新的权限,不能删除,不能创建job,另一一个账号只有构建权限。
- 不同项目组账号登录之后,jenkins视图只显示自己项目组的job。
2、规划
我们假设我们有两个项目组,分别是b和q,每个项目组两个账号,分别是 btest,badmin,qtest,qadmin。
项目 | 用户 | 权限 | 视图 | 角色 |
---|---|---|---|---|
b | badmin | 修改,查看,构建等 | b | badmin |
b | btest | 只构建 | b | buser |
q | qadmin | 修改,查看,构建等 | q | qadmin |
q | qtest | 只构建 | q | quser |
二、配置
1、安装插件
系统管理--->管理插件。
2、全局安全配置
系统管理--->全局安全配置。
3、创建用户
系统管理--->管理用户
4、创建角色
系统管理--->Manage and Assign Roles
1、创建一个Global roles
我们先创建一个全局角色user,赋予全局标签下面的Read权限。
2、创建规划项目的角色
分别创建两个项目的角色,按照规划的分配权限,Pattern
用于给项目匹配 job,使用正则表达式。
5、给用户分配角色
系统管理--->Manage and Assign Roles--->Assign Roles
6、创建项目视图
我这里只展示创建其中一个视图,另一个方式一样。
三、登录验证
1、创建 job
因为创建的账号都没有赋予创建job的权限,所以我们先使用最高的管理账户创建几个job,具体如下:
2、项目隔离验证
我们分别登录 btest 和 qtest 这两个账号,分别查看一下各自账号下面可以查看到的 job。
btest
qtest
我们可以看到,隔离成功,不同的项目值可以看到各自的 job。
3、权限验证
我们分别登录 badmin 和 btest ,查看其权限。
badmin
btest
我们可以看到,各自看到的权限就是我们在角色里面赋予的权限,没有问题。
以上是关于Jenkins 配置基于角色的项目权限管理的主要内容,如果未能解决你的问题,请参考以下文章