Jenkins2.32用户和权限管理策略

简介:



前言

在使用jenkins的过程中,需要为不同的角色分配相应的权限,如果jenkins的用户数据能和公司现在的帐号系统结合起来那会更好。

关于如何为用户分组,我推荐使用 role based authorization strategy 这个插件

我的环境如下:

版本:Jenkins ver. 2.32.3

系统:windows 7 x64

 

进入用户管理

如果使用的是jenkins内置的用户数据库,操作方法如下:

1.使用管理员帐号登录,选择 Configure Global Security  就可以打开用户管理界面

 

admin没有overall/Read权限

在授权策略中选择安全矩阵之后,并没有为amdin勾选 overall的权限

image

刷新或者点其它操作就会出现 admin没有overall/Read权限

image

解决办法:

1. 在jenkins的安装目录下找到 config.xml,备份一份,并打开

2. 找到 <authorizationStrategy> 节点 ,修改内容如下(两个配置可选)

<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
这个权限对应“任何用户可以做任何事(没有任何限制)”
 
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
这个权限对应“登录用户可以做任何事”

3. 重启jenkins的服务

 

内置用户和权限管理

推荐这篇博客讲解jenkins内置的用户管理比较详细

Jenkins学习七:Jenkins的授权和访问控制 

 

用户管理插件

在插件库搜索到的安装量较高的用户管理有两个:

Role-based Authorization Strategy:https://plugins.jenkins.io/role-strategy

安装量:20931

介绍:网上相关的文档资料较多(推荐使用)

 

Matrix Authorization Strategy:https://plugins.jenkins.io/matrix-auth

安装量:131937

介绍:文档较少,未使用。

 

Role-based Authorization Strategy

这个章节讲解这个插件的使用笔记,插件地址:https://plugins.jenkins.io/role-strategy

安装完 role based authorization strategy 之后,在系统管理的菜单项中会多出一项 “Manager and Assign Roles

创建用户组

1. 选择 系统管理 - Manager and Assign Roles 中的 mangage Roles 进行创建用户组

2. 记住要为所有用户组勾选overallread权限

image

我的测试可以只勾选Global roles,而无需在project roles中创建

 

为用户分配组

1. 选择 系统管理 - Manager and Assign Roles 中的 Assign Roles 可以为用户分组

image

我也只在Global roles为用户分配权限,并没有为特定的项目分配。

 

我的试验

1. 在Manage Roles中在Global roles创建用户组

2. 在Assign Roles 中为具体的用户分配组,只在global roles下为具体用户分配组

3 . 如上图所示,在project roles中并没有给qingqing_zhao没有分配权限,但global roles中分配了job_ops权限,所以qingqing_zhao这个用户拥有job_ops组的权限

4. 而在 anonymous 分配在 job_read 组,这样无需登录也可以项目信息,但仅仅可查看job信息,而无权进行任何操作

 

global roles 和 project roles

global roles全局角色(全局角色可以对jenkins系统进行设置与项目的操作)

project roles项目角色(项目角色只能对项目进行操作)

上述我的试验中,对qingqing_zhao 这个用户分配了全局角色权限,所以他也拥有项目的权限,golbal role 的权限大于project roles。

不同用户的视图

按照上面的测试,我对用户分了三个组:admin ,ops ,readonly,下面是这三个组进入jenkins的视图。

admin组视图

最高权限组,包括系统和job的管理权限

image

 

ops组图

仅仅可对job(项目)进行操作,包括build ,cancel

image

 

readonly 组

只可对job(项目)进行只读

image

 

不同用户组不同job

总结来说就是在建立job有一定的命名规范,在分配project roles时利用pattern进行过滤(例如:build.*  。表示build开头号的job都可以访问)

参考: https://my.oschina.net/boltwu/blog/404893

 

TODO

利用公司已有帐号系统

Jenkins 使用公司帐号体系或已有帐号进行登录,利用ldap,不同公司的配置数据不一样。

我使用的2.32.3版本自带ldap插件

参考:

http://blog.csdn.net/wanglei_storage/article/details/52935312

 

用户权限管理

Jenkins的用户组管理中的pattern (正规表达式)部分的使用

 

其他

通过Jenkins copy job 创建新的job 之后不能立即构建

 

小技巧

web页url操作jenkins

在web页就可以重启或关闭jenkins,操作如下:如果当前登录的帐号俱备管理员权限,在网址后面加上 /restart就可

http://192.168.70.224:8080/restart

 

/exit 退出

/reload 重载


本文出自赵青青,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6607175.html,如需转载请自行联系原作者



相关文章
|
3月前
|
运维 jenkins Linux
【Jenkins稳定运维】服务器频繁崩溃?资深管理员的应对策略
本文分享了作者作为管理员在面对服务器频繁崩溃时的应对策略,包括使用Shell脚本优化运维工作、学习Jenkins Pipeline插件以及一些运维技能扩展,强调了在运维工作中不断学习和实践的重要性。
55 0
【Jenkins稳定运维】服务器频繁崩溃?资深管理员的应对策略
|
3月前
|
安全 jenkins Devops
Jenkins 安全性和权限管理
【8月更文第31天】随着 DevOps 实践的普及,Jenkins 已经成为许多组织中不可或缺的一部分,用于自动化软件开发生命周期中的构建、测试和部署流程。然而,随着 Jenkins 的广泛应用,其安全性也变得越来越重要。Jenkins 提供了一系列的安全特性,包括访问控制列表(ACL)、认证和授权机制,以确保只有经过适当授权的用户才能访问和操作 Jenkins 系统。本文将详细介绍如何配置 Jenkins 的 ACL 以及其他安全措施,以保护 Jenkins 服务器免受未授权访问和攻击。
221 0
|
安全 jenkins 持续交付
jenkins权限管理
jenkins权限管理
66 0
|
jenkins 持续交付 数据安全/隐私保护
|
安全 jenkins 持续交付
Jenkins 用户角色权限管理
Jenkins 一般用作团队项目持续集成环境,所以就会设计多用户的情况,我们需要为不同人员设置不同的角色,进行权限管理。
Jenkins 用户角色权限管理
|
jenkins 持续交付 数据安全/隐私保护
|
15天前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
39 2
|
3月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
3天前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
16天前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
44 4