二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

    • Jenkins入门系列笔记汇总整理
    • 前言与介绍
    • Jenkins初始部署与简单配置
    • Jenkins各配置选项介绍
    • Jenkins中一个项目的构建
    • Jenkins配置项目构建的钉钉通知
    • Jenkins忘记管理员密码怎么办
    • Jenkins与gitlab的交互探微
    • Jenkins根目录详解
    • Jenkins插件之显示构建时间
    • Jenkins插件之批量修改配置
    • Jenkins配置简单构建邮件推送
    • Jenkins复杂邮件推送配置详解
    • Jenkins配置复杂构建邮件推送
    • Jenkins构建安卓项目之前的一些唠叨
    • Jenkins构建安卓项目配置
    • Jenkins与Gitlab分支的交互
    • Jenkins构建nodejs项目
    • 使用docker部署Jenkins及初始配置
    • 配置gitlab提交代码Jenkins自动构建
    • Jenkins回滚方案探微
    • Jenkins角色控制(小黄锁)探微
      • 1,安装插件。
      • 2,启用此功能。
      • 3,视图规划。
      • 4,管理角色。
        • 1,Global roles
        • 2,Project roles
        • 3,Slave roles
      • 5,用户管理。
      • 6,分配角色。
      • 补充一:我现在的使用方式。
      • 补充二:插件最新版本功能跟进。
    • Jenkins构建的应用配置问题解决探微
    • Jenkins构建中tag的应用
    • Jenkins插件之Ansicolor(神器)
    • 最基础核心的Jenkins功能部署一个java应用
    • Jenkins+sonar构建代码扫描
    • Jenkins+docker+gitlab将应用部署到docker
    • Jenkins参数化构建犀利插件Active-Choices-Plugin
    • 记一次将代码中参数外显到构建历史中的操作
    • Jenkins升级与迁移的经验分享
    • pipeline笔记之从一个简单的项目构建开始
    • Jenkinsfile声明式语法详解
    • 自动构建的原始配置以及pipeline中的用法
    • 多分支构建的实践与思考
    • 使用Jenkinsfile类前端项目的部署与回滚
    • 如何在Jenkinsfile中定义一个全局的时间戳变量
    • Jenkins中自由风格回滚方案的最佳实践
    • Jenkins中pipeline风格回滚方案的最佳实践
    • pipeline结合ansible剧本进行批量的部署与回滚配置
    • 最近配置安卓iOS打包本地化流程中一些值得记录的内容
    • pipeline中如何在environment环节声明一个含有通配符的变量
    • git-Parameter插件在pipeline共享库中的实践详解
    • jenkins作为ci检测代码是否合并的实践
    • 将Jenkins共享库的Jenkinsfile放到ci静态检测的实践
    • Jenkins的pipeline实践之GitSCM参数配置项详解
    • Jenkins中pipeline对接CMDB接口获取主机列表的发布实践
    • Jenkins有任务无法kill提示即将关闭
    • Jenkins基于Share Library共享库的最佳实践探索
    • Jenkins结合MySql Database插件的平台化实践思路
    • Jenkins-Groovy中三元表达式的用法
    • Jenkins-Groovy中Switch的高阶用法
    • Jenkins-pipeline之利用activity choice插件对接查询MySQL数据实现动态参数化的功能
    • CentOS通过yum快速安装Jenkins
    • Jenkins-pipeline语法之错误处理详解(文末有干货)
    • Jenkins常用插件汇总以及简单介绍
    • Jenkins所遇报错汇总及解决
    • Jenkins管理维护运维规范
  • ELK笔记

  • Kubernetes笔记

  • LLM专题

  • 系列专题
  • Jenkins系列文章
二丫讲梵
2018-07-31
目录

Jenkins角色控制(小黄锁)探微

文章发布较早,内容可能过时,阅读注意甄别。

如果公司比较小,有可能所有环境(此处的环境指测试,预发,线上)的 Jenkins 都在一台之上,那么在这种情况下,做好 Jenkins 项目视图以及权限的控制就显得非常重要了。

如果公司稍微大一些,项目可能七七八八有不少,那么多项目的情况下,如何让负责开发a的同学就只能看到a项目,负责开发b的同学只能看到b项目呢,这就要请出我们今天的主角了,Jenkins 当中的角色控制。

事实上在这之前在第三篇文章里边小黄锁 (opens new window),我已经对其做过一些介绍,不过还是有不少朋友会来问,这个该怎么使用,都怪我写的太大略,因此今天来对这一方面进行一下详细解释。

# 1,安装插件。

Jenkins 的角色控制依赖于插件:Role-Based Strategy。

插件的安装这里就不多说了。

# 2,启用此功能。

正常的使用方式就是在系统管理界面有一个Manage and Assign Roles。

但是仅仅安装完插件是不能看到这个功能的,需要到系统管理的全局安全配置界面进行一下配置。

系统默认的是登录用户可以做任何事情,现在改成用角色控制的方案,上边也可以开启允许用户注册。

详细情况如下图所示:

image

配置完成之后点击保存,再去系统配置里边就能看到小黄锁(Manage and Assign Roles)出现啦。

# 3,视图规划。

今天我们来从头到尾详细梳理一下,拿真实的例子来进行一波演练。

先看我准备的一些项目。

image

当然常规来说,我们肯定都是一个项目一个项目创建,然后创建的时候就已经进行了规划分类,现在为了讲解,我先创建了这么 8 个项目。

大概可以分出四个视图:

  • 1,alibaba-test
  • 2,alababa-online
  • 3,baidu-test
  • 4,baidu-online

可以直接点击左侧的新建视图来进行项目的分类管理。

image

如上操作,创建视图:

image

将对应的项目选中即可,虽然这步操作与今天的主题关系不大,但是也是日常管理的一个重要项,整理完毕之后,如下图:

image

# 4,管理角色。

如上边操作的,我们已经将不同的项目进行归类,此时对于运维人员来说,百度的开发人员只需要能够看到 baidu-test 的项目,然后能够进行构建用于测试即可,线上的不需要看到,线上发布的事儿也不用他们操心,当然,更不能让百度的开发人员看到阿里巴巴的项目,想要完成这些操作,就需要先在管理角色界面进行一些配置了。

如果你看过我之前对小黄锁的介绍的话,那么你应该已经知道管理角色是在哪里,以及怎么使用了。

原始界面如下图:

image

这里其实不必多说单看名字也都知道他们的功能了。

# 1,Global roles

是最高统领的一个权限管理,配置某用户(这个用户类似于 gitlab 当中的 master 与 developer 的意义)的权限是什么。

默认的 admin 就是拥有所有权限,我们可以创建一个开发用户并配置其权限。

image

对所有都是只能看不能摸的权限。

# 2,Project roles

是详细项目权限的管理。

此处可以添加项目,通过正则进行匹配,从而达到不同的项目以及不同的权限的目的。

废话不多说,直接上图见分晓。

image

一般情况下,只要建立项目的时候名称足够规范,那么这里的权限设置也都比较简单的,通过对项目进行正则匹配即可,权限的话,酌情进行分配,如上所分配的权限,是最基础的读,构建,以及取消的权限,足够日常开发使用了。

# 3,Slave roles

顾名思义,这是有了 Jenkins 集群之后,进行的权限控制,这里先不多谈,等以后谈到 Jenkins 集群部署的时候,再来说这个东东,或者就不再说了,因为基本上工作当中基本上不会用到。

# 5,用户管理。

公司新来了小伙伴,或者你的 Jenkins 刚刚做好,需要让大家都能够登陆,然后看到其对应的项目,那么第一步就是先来创建用户,用户也可以在公司群里吼一声,让大家各自进行注册,然后再来进行管理。

点击系统管理,管理用户,即可进入用户数据库,用户注册页面如下:

image

  • 1,用户名:个人用户名的中文拼音。如张三:zhangsan,李四:lisi。
  • 2,密码:自定义。
  • 3,全名:可以沿用用户名,不过此处也可以写自己名字的中文。
  • 4,邮箱地址。

可能刚刚这段说明有些小啰嗦,但是正是因为对简单的东西的啰嗦,才形成了规范化的一个进展,比如,我在权限分配的时候,不用问你你注册的名字是啥,就直接能够给你授权了,如果张三起了个 Tom,李四起了个 Jerry,那你运维去吧,够你运维的了。

现在我就创建了百度开发人员张三以及阿里巴巴开发人员李四。

如下图:

image

# 6,分配角色。

我们进入到小黄锁的第二个选项当中。

照例先来一张默认图:

image

当我们需要对一个新注册用户授权的时候,需要做两件事情:

  • 第一在全局权限里,添加用户,让其有开发的权限。
  • 第二就是在项目权限里添加,让其对具体项目拥有具体权限。

接下来就一个一个设置:

image

配置完成,别忘了点击最下边的save进行保存。

通过这张图,应该可以非常清楚理解为什么,神通广大的百度开发人员张三,在运维人员的控制之下,却只能看到 baidu-test 的项目了吧。

究竟是不是如我所说的这样呢,我们登陆一下张三的账号看下是不是真的。

image

接着再来看看李四的情况。

image

ok,到这里,基本上经过这样一趟洗礼之后,如果你看的认真并照做了的话,相信你就已经掌握 Jenkins 当中的角色控制啦!!

如果还有什么疑惑,以及在工作中有什么坑之类的,欢迎您在下方留言区域一起交流!!!

# 补充一:我现在的使用方式。

如果上边的文章内容你仔细阅读并进行实验已经理解了利用这个插件来控制用户视图权限的用法的话,那么接下来的操作,可能会让你效率增加一些,现在我的用法是这样的。

在分配角色的 global role 里边,配置Anonymous拥有develop的那个权限,这样以来,默认所有用户都会拥有首页读的权限,而不会有项目的权限,然后接着把用户在下边针对项目授权即可,这样以来,就能省掉一步授权添加的操作了。

当然,可能这样“裸奔”会被认为不够安全,尤其是针对那些开放了外网访问的 Jenkins 来说,别急,我这里还有一个办法,根据官方文档描述说:

笔记

Jenkins 有两个内置角色

  • Anonymous :尚未登录的用户
  • authenticated : 登录用户

如此以来,我们这里只需配置authenticated拥有develop的那个权限,然后把Anonymous的权限取消掉,这样以来,所有未经登陆的用户,就无法查看任何内容啦!

补充于2019-02-21 14:03:07 星期四

# 补充二:插件最新版本功能跟进。

今天有小伙伴找我问起这个插件了,我看了看竟然有新功能更新了,而且是非常赞的一个功能。目前升级到最新版本为 2.10。

官网给出的更新日志如下:

image

着重介绍一下新功能:“管理角色”表现在支持预览与正则表达式匹配的作业。

下边配图帮助理解这句话:

image

点击新增的匹配规则,可以直接看到匹配到设置的规则的项目,非常方便。赞一个!

补充于2019-02-21 14:03:07 星期四

微信 支付宝
#jenkins#权限管理
上次更新: 2024/07/04, 22:40:37
Jenkins回滚方案探微
Jenkins构建的应用配置问题解决探微

← Jenkins回滚方案探微 Jenkins构建的应用配置问题解决探微→

最近更新
01
睡着的人不关灯
06-12
02
学习周刊-总第215期-2025年第24周
06-12
03
学习周刊-总第214期-2025年第23周
06-05
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式