jenkins组权限_Jenkins配置基于角色的项目权限管理

本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理。

由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Strategy Plugin,介绍页面:https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

一、配置插件

安装插件后,进入系统设置页面,配置如下:

官网上安全域设置为Servlet容器代理,实际操作发现Jenkins专有用户数据库也是可以的。

二、配置权限

在系统管理页面点击Manage and Assign Roles进入角色管理页面:

1、管理角色(Manage Roles)

选择该项可以创建全局角色、项目角色,并可以为角色分配权限。

如上图,分别创建了admin、anonymous两个全局角色,Online Program、test两个项目角色。

项目角色与全局角色的区别就是,项目角色只能管理项目,没有管理jenkins的权限配置。

添加项目角色时,需要制定匹配项目的模式,如上图中的Pattern,官方文档介绍该选项支持正则表达式,如“Roger-.”表示所有以Roger-开头的项目,“(?i)roger-.*”表示以roger-开头的项目并且不区分大小写,如以ABC开头的项目可以配置为“ABC|ABC.*”,也可以使用“abc|bcd|efg”直接匹配多个项目。

2、创建用户

在分配角色之前需要先创建用户。

在系统管理页面,点击管理用户:

点击新建使用者可以创建新用户,如果之前有项目与scm版本管理系统(如svn、git等)连接并获取源码构建过,jenkins会从svn中读取到一些用户信息,可以在查看用户菜单中看到这些用户:

点击用户id或名称都可以修改用户信息。

3、分配角色(Assign Roles)

选择Assign Roles可以为用户分配所属角色,可以分配全局角色和项目角色。

如上图,将不同的用户分别分配给不同的角色,这样用户就可以具有角色所拥有的权限。

三、深入了解

该插件从2011年10月发布1.1.2版本后就不再维护了,因此会有一些小问题,但不影响使用,比如在分配角色后点击保存按钮时有可能会发生异常,浏览器点击后退按钮后重新提交就可以操作成功。

另外如果配置失败导致不能登录,可以通过修改配置文件恢复初始设置。

首先了解一下配置文件。

进入jenkins安装目录,用户配置信息和角色配置信息都以配置文件的形式存储。

上图中users目录存放了各个用户的配置信息,每个用户都会创建与用户名相同的文件夹,文件夹中包含config.xml文件,配置示例如下:

admin

EfowsOP9H5arYxMmuFrbPjjITgu/fjtvHib5okFJ9DmPTu/088cvHxlE9RHwVv+S

All

false

false

false

uAEYii:02e0cd0d78abf90e42b28e7d3d4fe64776ae8fa9500e379f2598cc65e1b0fb70

gaoliang@esrichina.com.cn

角色配置在$Jenkins_home/config.xml文件中,示例如下:

true

hudson.model.Hudson.Read

hudson.model.Hudson.Administer

hudson.model.View.Delete

hudson.model.Computer.Create

hudson.model.Computer.Delete

hudson.model.Hudson.RunScripts

hudson.model.View.Read

hudson.model.Run.Update

hudson.model.Item.Workspace

hudson.model.Computer.Connect

hudson.model.Computer.Configure

hudson.model.Item.Cancel

hudson.model.Item.Configure

hudson.model.Item.Discover

hudson.model.Item.Create

hudson.model.View.Configure

hudson.model.Computer.Disconnect

hudson.model.Item.Delete

hudson.model.Item.Read

hudson.model.Item.Build

hudson.model.Run.Delete

hudson.model.View.Create

hudson.scm.SCM.Tag

admin

hudson.model.Hudson.Read

anonymous

hudson.model.Item.Read

hudson.model.Item.Build

hudson.model.Run.Delete

hudson.model.Item.Workspace

hudson.model.Run.Update

hudson.scm.SCM.Tag

hudson.model.Item.Cancel

hudson.model.Item.Discover

caox

wangwh

yuh

chenjj

lim

zhangy

hudson.model.Item.Delete

hudson.model.Item.Read

hudson.model.Item.Build

hudson.model.Run.Delete

hudson.model.Item.Workspace

hudson.model.Run.Update

hudson.scm.SCM.Tag

hudson.model.Item.Cancel

hudson.model.Item.Configure

hudson.model.Item.Discover

wangwh

false

false

如果发生用户不能登录的情况,可以尝试以下几种方法解决

1、方法1

删除用户相关的目录

修改$Jenkins_home/config.xml文件:false

删除authorizationStrategy、securityRealm节点

重新启动Jenkins

使用该方法将删除Jenkins的权限管理,恢复成为初始状态。

2、方法2

修改$Jenkins_home/config.xml文件,修改授权方式为系统自带的安全矩阵方式

authorizationStrategy节点class属性修改为hudson.security.GlobalMatrixAuthorizationStrategy

配置示例如下,该示例是分配给admin用户所有权限

true

hudson.model.Computer.Configure:admin

hudson.model.Computer.Connect:admin

hudson.model.Computer.Create:admin

hudson.model.Computer.Delete:admin

hudson.model.Computer.Disconnect:admin

hudson.model.Hudson.Administer:admin

hudson.model.Hudson.Read:admin

hudson.model.Hudson.Read:anonymous

hudson.model.Hudson.RunScripts:admin

hudson.model.Item.Build:admin

hudson.model.Item.Cancel:admin

hudson.model.Item.Configure:admin

hudson.model.Item.Create:admin

hudson.model.Item.Delete:admin

hudson.model.Item.Discover:admin

hudson.model.Item.Read:admin

hudson.model.Item.Workspace:admin

hudson.model.Run.Delete:admin

hudson.model.Run.Update:admin

hudson.model.View.Configure:admin

hudson.model.View.Create:admin

hudson.model.View.Delete:admin

hudson.model.View.Read:admin

hudson.scm.SCM.Tag:admin

false

false

重新启动Jenkins

使用该方法Jenkins将恢复为安全矩阵方式授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值