《Jenkins配置基于角色的项目权限管理》由会员分享,可在线阅读,更多相关《Jenkins配置基于角色的项目权限管理(14页珍藏版)》请在金锄头文库上搜索。
1、Jenkins 配置基于角色的项目权限管理本文将介绍如何配置 jenkins,使其可以支持基于角色的项目权限管理。由于 jenkins 默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用 Role Strategy Plugin,介绍页面:https:/wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin一、配置插件安装插件后,进入系统设置页面,配置如下:官网上安全域设置为 Servlet 容器代理,实际操作发现 Jenkins 专有用户数据库也是可以的。二、配置权限在系统管理页面点击 Ma
2、nage and Assign Roles 进入角色管理页面:1、管理角色(Manage Roles)选择该项可以创建全局角色、项目角色,并可以为角色分配权限。如上图,分别创建了 admin、anonymous 两个全局角色,Online Program、test 两个项目角色。项目角色与全局角色的区别就是,项目角色只能管理项目,没有管理jenkins 的权限配置。添加项目角色时,需要制定匹配项目的模式,如上图中的 Pattern,官方文档介绍该选项支持正则表达式,如“Roger-.”表示所有以Roger-开头的项目,“(?i)roger-.*”表示以 roger-开头的项目并且不区分大小写,
3、如以 ABC 开头的项目可以配置为“ABC|ABC.*”,也可以使用“abc|bcd|efg”直接匹配多个项目。2、创建用户在分配角色之前需要先创建用户。在系统管理页面,点击管理用户:点击新建使用者可以创建新用户,如果之前有项目与 scm 版本管理系统(如 svn、git 等)连接并获取源码构建过,jenkins 会从 svn 中读取到一些用户信息,可以在查看用户菜单中看到这些用户:点击用户 id 或名称都可以修改用户信息。3、分配角色(Assign Roles)选择 Assign Roles 可以为用户分配所属角色,可以分配全局角色和项目角色。如上图,将不同的用户分别分配给不同的角色,这样用
4、户就可以具有角色所拥有的权限。三、深入了解该插件从 2011 年 10 月发布 1.1.2 版本后就不再维护了,因此会有一些小问题,但不影响使用,比如在分配角色后点击保存按钮时有可能会发生异常,浏览器点击后退按钮后重新提交就可以操作成功。另外如果配置失败导致不能登录,可以通过修改配置文件恢复初始设置。首先了解一下配置文件。进入 jenkins 安装目录,用户配置信息和角色配置信息都以配置文件的形式存储。上图中 users 目录存放了各个用户的配置信息,每个用户都会创建与用户名相同的文件夹,文件夹中包含 config.xml 文件,配置示例如下:adminEfowsOP9H5arYxMmuFrb
5、PjjITgu/fjtvHib5okFJ9DmPTu/088cvHxlE9RHwVv+S AllfalsefalsefalseuAEYii:角色配置在$Jenkins_home/config.xml 文件中,示例如下: truehudson.model.Hudson.Readhudson.model.Hudson.Administerhudson.model.View.Deletehudson.model.Computer.Createhudson.model.Computer.Deletehudson.model.Hudson.RunScriptshudson.model.View.Read
6、hudson.model.Run.Updatehudson.model.Item.Workspacehudson.model.Computer.Connecthudson.model.Computer.Configurehudson.model.Item.Cancelhudson.model.Item.Configurehudson.model.Item.Discoverhudson.model.Item.Createhudson.model.View.Configurehudson.model.Computer.Disconnecthudson.model.Item.Deletehudson
7、.model.Item.Readhudson.model.Item.Buildhudson.model.Run.Delete hudson.model.View.Createhudson.scm.SCM.Tagadminhudson.model.Hudson.Readanonymoushudson.model.Item.Readhudson.model.Item.Buildhudson.model.Run.Deletehudson.model.Item.Workspacehudson.model.Run.Updatehudson.scm.SCM.Taghudson.model.Item.Can
8、celhudson.model.Item.Discover caoxwangwhyuhchenjjlimzhangyhudson.model.Item.Deletehudson.model.Item.Readhudson.model.Item.Buildhudson.model.Run.Deletehudson.model.Item.Workspacehudson.model.Run.Updatehudson.scm.SCM.Taghudson.model.Item.Cancelhudson.model.Item.Configurehudson.model.Item.Discoverwangw
9、h falsefalse如果发生用户不能登录的情况,可以尝试以下几种方法解决1、方法 1 删除用户相关的目录 修改$Jenkins_home/config.xml 文件:false 删除 authorizationStrategy、securityRealm 节点 重新启动 Jenkins使用该方法将删除 Jenkins 的权限管理,恢复成为初始状态。2、方法 2 修改$Jenkins_home/config.xml 文件,修改授权方式为系统自带的安全矩阵方式authorizationStrategy 节点 class 属性修改为hudson.security.GlobalMatrixAuth
10、orizationStrategy 配置示例如下,该示例是分配给 admin 用户所有权限true hudson.model.Computer.Configure:adminhudson.model.Computer.Connect:adminhudson.model.Computer.Create:adminhudson.model.Computer.Delete:adminhudson.model.Computer.Disconnect:adminhudson.model.Hudson.Administer:adminhudson.model.Hudson.Read:adminhudson
11、.model.Hudson.Read:anonymoushudson.model.Hudson.RunScripts:adminhudson.model.Item.Build:adminhudson.model.Item.Cancel:adminhudson.model.Item.Configure:adminhudson.model.Item.Create:adminhudson.model.Item.Delete:adminhudson.model.Item.Discover:adminhudson.model.Item.Read:adminhudson.model.Item.Workspace:adminhudson.model.Run.Delete:adminhudson.model.Run.Update:adminhudson.model.View.Configure:adminhudson.model.View.Create:adminhudson.model.View.Delete:adminhudson.model.View.Read:admin hudson.scm.SCM.Tag:adminfalsefalse 重新启动 Jenkins使用该方法 Jenkins 将恢复为安全矩阵方式授权。参考文献:http:/