本文将介绍如何配置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可以为用户分配所属角色,可以分配全局角色和项目角色。

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