Jenkins2.32用户和权限管理策略
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/6607175.html
前言#
在使用jenkins的过程中,需要为不同的角色分配相应的权限,如果jenkins的用户数据能和公司现在的帐号系统结合起来那会更好。
关于如何为用户分组,我推荐使用 role based authorization strategy 这个插件
我的环境如下:
系统:windows 7 x64
进入用户管理#
如果使用的是jenkins内置的用户数据库,操作方法如下:
1.使用管理员帐号登录,选择 Configure Global Security 就可以打开用户管理界面
admin没有overall/Read权限#
在授权策略中选择安全矩阵之后,并没有为amdin勾选 overall的权限
刷新或者点其它操作就会出现 admin没有overall/Read权限
解决办法:
1. 在jenkins的安装目录下找到 config.xml,备份一份,并打开
2. 找到 <authorizationStrategy> 节点 ,修改内容如下(两个配置可选)
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/> 这个权限对应“任何用户可以做任何事(没有任何限制)” <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/> 这个权限对应“登录用户可以做任何事”
3. 重启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. 记住要为所有用户组勾选overall的read权限
我的测试可以只勾选Global roles,而无需在project roles中创建
为用户分配组#
1. 选择 系统管理 - Manager and Assign Roles 中的 Assign Roles 可以为用户分组
我也只在Global roles为用户分配权限,并没有为特定的项目分配。
使用通配符#
在Manager and Assign Roles - Project roles 中可以添加通配符,为不同组指定可以打包那些项,通配符是匹配创建的job名字
我的试验#
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的管理权限
ops组图#
仅仅可对job(项目)进行操作,包括build ,cancel
readonly 组#
只可对job(项目)进行只读
不同用户组不同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 重载
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验