文章已经迁移到我的个人博客,里面还有更多内容。
3. Jenkins使用 -- 用户设置
建立用户
主页点击系统管理 -> 管理用户,可见现在只有一个管理员用户
点击右侧新建用户
输入所需信息
现在,我们有两个用户
退出admin账号,登录user1账号,确定没有问题,再次退出,返回admin账号
分配用户角色
新建的用户有和管理员一样的权限,不安全,我们需要限制其权限。
我们使用角色来管理权限。简单来说就是管理员创建若干角色,比如开发者,测试者等,每个角色都有对应的一些权限。我们还有若干用户,比如用户1,用户2等,其中用户1做开发,用户2做测试。那么如果我们设定用户1的角色是开发者,用户2的角色是测试者,就可以很快给各个用户分开好权限。下次再有更多用户,我们只要给他们设定相应的角色即可,而不用对每个用户单独设定,这样便可以简化我们的工作。
安装所需插件
进入系统管理 -> 插件管理,点击可选插件,然后在过滤中输入role
选中出现的插件,然后点击直接安装
然后选择安装完成后重启****Jenkins即可
设置安全策略
点击系统管理-> 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(全局的)Read和View的所有权限,如下图
添加一个项目角色
Role to add中,添加"developer",Pattern中,添加"Dev.*"
分配给此类项目job所有权限
类似方法,可以添加一个名为"tester"的项目角色,Pattern设置为"Test.*",并且赋予所有权限。
Pattern这个设置可能会有点迷惑。这里填的是一个正则表达式,目的是匹配job全名(如果使用了Cloudbees Folders Plugin,那么全名还包括为文件夹),具体可以参考官方文档。
全局角色与项目角色
全局角色设定覆盖项目角色的任何设定。那么,如果全局设定某个角色可以job-read(如下图设置),那么不管项目角色怎么设定的,这个角色都可以读取任何项目。
基于此,推荐多数(甚至所有)全局的Job,Run,SCM都不要钩选。
分配角色
回到主页,点击系统管理-> 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用户,看看可不可以看到这个项目了。
有兴趣的话,自己多建立几个用户和项目,体验一下这些设置。