Jenkins自动化部署-权限管控篇 (六)

随着产品线不断扩大, 工程也越来越多, 几乎每个项目在一个环境上会有两个以上的工程, 后期上百个工程, 而且一个账号可以构建、删除、修改所有的工程。 这种情况下会经常发生误删、误改、误构建的事件,进行权限管控能够大量杜绝这样的事件发生
本例子是当前最新的版本 V2.91, 版本越高功能越完善, 建议使用最新版本部署, 低版本视图功能不完善, 在首页可以看到所有项目的工程, 项目一多就很慢

  • 本例子根据公司人员职责范围进行的权限划分: 测试、开发、运维
    • 测试只能构建非生产环境指定项目的工程
    • 开发只能构建与配置非生产环境指定项目的工程
    • 运维拥有所有权限

权限管控插件: Role-based Authorization Strategy

  • 安装权限管控,进入系统管理页面,点击管理插件, 过滤Role-based Authorization Strategy, 勾选后,直接安装

    image.png

  • 回到系统管理页面, 点击全局安全配置

    image.png

  • 如下图, 授权策略选择Role-Based Strategy, 点击保存

    image.png

  • 回到系统管理页面, 列表中多了一个Manage and Assign Roles, 点击进入该功能页面

    image.png

  • 配置全局角色

全局角色粒度太大,一定要分配置一个Read 权限, 否则无法登陆
job_create: 可以创建工程并且可以对视图进行操作
job_role: 可以对视图进行操作
权限类型:
Overall: 全局
Credentials: 凭证
View: 视图
Job: 任务

image.png
  • 配置Project roles, 一共配置三个角色开发者、测试、运维, 点击Add进行添加

Role to add: 角色名称
Pattern: 正则表达式, 权限控制范围

image.png
  • 三个角色配置完成后:
jenkins-demo-devel-role: jenkins-demo-.*(dev|sit|uat)
jenkins-demo-test-role: jenkins-demo-.*(dev|sit|uat)
jenkins-demo-oper-role: jenkins-demo-.*

JOB(工程)主要权限
Build: 构建
Cancel: 取消构建
Configure: 配置
Delete: 删除
Read: 浏览
Workspace: 工作空间

image.png
  • 点击保存,回到系统管理页面, 点击管理用户

    image.png

  • 点击新建用户, 分别添加三个用户开发者、测试、运维
    jenkins-demo-develjenkins-demo-testjenkins-demo-oper

    image.png

  • 回到系统管理页面, Manage and Assign Roles > Assign Roles

  • 给三个用户分配全局角色

image.png
  • 给三个用户分配工程角色
image.png
  • 点击保存完成配置

  • 测试账号登陆, 只有构建与查看权限,并且看不到生产环境的工程


    image.png
  • 开发账号登陆, 除了生产环境的工程看不到, 其它环境的工程都可以查看,删除,修改和构建


    image.png
  • 运维账号拥有所有环境的权限


    image.png
  • 如果项目庞大, 我们可以通过视图限制, 点击My Views - >新建视图

My Views 里面创建的视图只有当前账户可以看得到, 而首页里新建的视图所有账户都可以看到, 一但项目多起来将毫无意义, 非常的混乱

image.png

我的视图: 只能显示当前账号有权限的工程
简单视图: 可以选择当前账号显示的工程

image.png
  • 选择简单视图, 创建一个开发环境的视图


    image.png
  • 创建完成后只能看到刚才选择的工程, 还有个好处就是可以收藏当前视图的URL地址, 下次可以直接进来, 非常方便


    image.png
  • 如果勾选错了, 导致admin也无法登陆, 可以尝试下面的方法
    • 修改全局角色admin角色, 恢复到原始状态
      • 修改${jenkins_home}/config.xml, 如果用yum 安装直接 vim /var/lib/jenkins/config.xml
      • 找到<roleMap type="globalRoles"> 节点, 把<role name="admin" pattern=".*"> 这个节点全部替换成初始的admin角色权限
image.png
  • 这是admin角色初始的权限
  <role name="admin" pattern=".*">
        <permissions>
          <permission>hudson.model.View.Delete</permission>
          <permission>hudson.model.Computer.Connect</permission>
          <permission>hudson.model.Run.Delete</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains</permission>
          <permission>hudson.model.Computer.Create</permission>
          <permission>hudson.model.View.Configure</permission>
          <permission>hudson.model.Computer.Build</permission>
          <permission>hudson.model.Item.Configure</permission>
          <permission>hudson.model.Hudson.Administer</permission>
          <permission>hudson.model.Item.Cancel</permission>
          <permission>hudson.model.Item.Read</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View</permission>
          <permission>hudson.model.Computer.Delete</permission>
          <permission>hudson.model.Item.Build</permission>
          <permission>hudson.scm.SCM.Tag</permission>
          <permission>hudson.model.Item.Move</permission>
          <permission>hudson.model.Item.Discover</permission>
          <permission>hudson.model.Hudson.Read</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Update</permission>
          <permission>hudson.model.Item.Create</permission>
          <permission>hudson.model.Item.Workspace</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Delete</permission>
          <permission>hudson.model.Computer.Provision</permission>
          <permission>hudson.model.Run.Replay</permission>
          <permission>hudson.model.View.Read</permission>
          <permission>hudson.model.View.Create</permission>
          <permission>hudson.model.Item.Delete</permission>
          <permission>hudson.model.Computer.Configure</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Create</permission>
          <permission>hudson.model.Computer.Disconnect</permission>
          <permission>hudson.model.Run.Update</permission>
        </permissions>
        <assignedSIDs>
          <sid>admin</sid>
        </assignedSIDs>
      </role>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容