3. Jenkins使用 -- 用户设置

0.288字数 1276阅读 4954

文章已经迁移到我的个人博客,里面还有更多内容。

3. Jenkins使用 -- 用户设置

建立用户

主页点击系统管理 -> 管理用户,可见现在只有一个管理员用户

点击右侧新建用户

new.png

输入所需信息

现在,我们有两个用户

退出admin账号,登录user1账号,确定没有问题,再次退出,返回admin账号

分配用户角色

新建的用户有和管理员一样的权限,不安全,我们需要限制其权限。
我们使用角色来管理权限。简单来说就是管理员创建若干角色,比如开发者测试者等,每个角色都有对应的一些权限。我们还有若干用户,比如用户1用户2等,其中用户1做开发,用户2做测试。那么如果我们设定用户1的角色是开发者用户2的角色是测试者,就可以很快给各个用户分开好权限。下次再有更多用户,我们只要给他们设定相应的角色即可,而不用对每个用户单独设定,这样便可以简化我们的工作。

安装所需插件

进入系统管理 -> 插件管理,点击可选插件,然后在过滤中输入role
选中出现的插件,然后点击直接安装

role.png

然后选择安装完成后重启****Jenkins即可

restart.png

设置安全策略

点击系统管理-> Configure Global Security, 选中图示的Role-Based Strategy,然后保存设置。

退出admin账号,登录user1账号,发现出现下图错误,说明配置生效。这个错误说明未经admin授权角色,其他用户没有任何权限。

创建角色

为了给其他用户赋予合适的工作权限,我们需要首先创建角色。
重新登录admin

点击系统管理-> Configure Global Security-> Manage and Assign Roles,进入如下界面。

进入Manage Roles,我们看到三中角色分类,Global roles(全局角色)Project roles(项目角色)Slave roles(奴隶角色)。项目角色与全局角色的区别就是,项目角色只能管理项目,没有管理jenkins的权限配置。

  • Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
  • Project roles(项目角色): 针对某个或者某些项目的角色
  • Slave roles(奴隶角色):节点相关的权限

我们可以发现,admin角色拥有所有权限。

添加一个全局角色

下面输入框中,添加一个全局角色,比如叫做employee

然后为其设置Overrall(全局的)ReadView的所有权限,如下图

添加一个项目角色

Role to add中,添加"developer",Pattern中,添加"Dev.*"

分配给此类项目job所有权限

类似方法,可以添加一个名为"tester"的项目角色Pattern设置为"Test.*",并且赋予所有权限。

Pattern这个设置可能会有点迷惑。这里填的是一个正则表达式,目的是匹配job全名(如果使用了Cloudbees Folders Plugin,那么全名还包括为文件夹),具体可以参考官方文档

全局角色与项目角色

全局角色设定覆盖项目角色的任何设定。那么,如果全局设定某个角色可以job-read(如下图设置),那么不管项目角色怎么设定的,这个角色都可以读取任何项目。

基于此,推荐多数(甚至所有)全局的JobRunSCM都不要钩选。

分配角色

回到主页,点击系统管理-> Configure Global Security-> Manage and Assign Roles,进入如下界面。

点击Assign Roles,首先,在Global roles部分,User/group to add中输入我们刚才建立的用户名user1,点击add添加,然后在出现的对应的全局角色位置勾选employee

类似的,在Project roles位置为user1账号添加developer角色。

这样,我们便添加了全局和项目角色,而且分配了对应用户。

slave role暂时没有研究,以后用到了再补充

验证新建的角色

首先,我们需要有对应的项目来验证。回到主页,点击新建

然后出现下图界面,Enter an item name中输入DevProject1,然后选择构建一个自由风格的软件项目,最后点击OK保存。

现在可以自己试试登录我们的user1用户,看看可不可以看到这个项目了。
有兴趣的话,自己多建立几个用户和项目,体验一下这些设置。

推荐阅读更多精彩内容