隨著產(chǎn)品線不斷擴(kuò)大礼旅, 工程也越來(lái)越多庆揩, 幾乎每個(gè)項(xiàng)目在一個(gè)環(huán)境上會(huì)有兩個(gè)以上的工程俐东, 后期上百個(gè)工程, 而且一個(gè)賬號(hào)可以構(gòu)建订晌、刪除虏辫、修改所有的工程。 這種情況下會(huì)經(jīng)常發(fā)生誤刪锈拨、誤改砌庄、誤構(gòu)建的事件,進(jìn)行權(quán)限管控能夠大量杜絕這樣的事件發(fā)生
本例子是當(dāng)前最新的版本 V2.91, 版本越高功能越完善, 建議使用最新版本部署, 低版本視圖功能不完善, 在首頁(yè)可以看到所有項(xiàng)目的工程, 項(xiàng)目一多就很慢
- 本例子根據(jù)公司人員職責(zé)范圍進(jìn)行的權(quán)限劃分: 測(cè)試推励、開(kāi)發(fā)鹤耍、運(yùn)維
- 測(cè)試只能構(gòu)建非生產(chǎn)環(huán)境指定項(xiàng)目的工程
- 開(kāi)發(fā)只能構(gòu)建與配置非生產(chǎn)環(huán)境指定項(xiàng)目的工程
- 運(yùn)維擁有所有權(quán)限
權(quán)限管控插件: Role-based Authorization Strategy
-
安裝權(quán)限管控,進(jìn)入
系統(tǒng)管理
頁(yè)面验辞,點(diǎn)擊管理插件
稿黄, 過(guò)濾Role-based Authorization Strategy
, 勾選后跌造,直接安裝
-
回到
系統(tǒng)管理
頁(yè)面, 點(diǎn)擊全局安全配置
-
如下圖杆怕,
授權(quán)策略
選擇Role-Based Strategy
, 點(diǎn)擊保存
-
回到
系統(tǒng)管理
頁(yè)面, 列表中多了一個(gè)Manage and Assign Roles
, 點(diǎn)擊進(jìn)入該功能頁(yè)面
配置全局角色
全局角色粒度太大,一定要分配置一個(gè)
Read
權(quán)限, 否則無(wú)法登陸
job_create
: 可以創(chuàng)建工程并且可以對(duì)視圖進(jìn)行操作
job_role
: 可以對(duì)視圖進(jìn)行操作
權(quán)限類型:
Overall
: 全局
Credentials
: 憑證
View
: 視圖
Job
: 任務(wù)
- 配置
Project roles
, 一共配置三個(gè)角色開(kāi)發(fā)者族购、測(cè)試、運(yùn)維陵珍, 點(diǎn)擊Add進(jìn)行添加
Role to add
: 角色名稱
Pattern
: 正則表達(dá)式, 權(quán)限控制范圍
- 三個(gè)角色配置完成后:
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(工程)主要權(quán)限
Build
: 構(gòu)建
Cancel
: 取消構(gòu)建
Configure
: 配置
Delete
: 刪除
Read
: 瀏覽
Workspace
: 工作空間
-
點(diǎn)擊保存寝杖,回到
系統(tǒng)管理
頁(yè)面, 點(diǎn)擊管理用戶
-
點(diǎn)擊
新建用戶
, 分別添加三個(gè)用戶開(kāi)發(fā)者互纯、測(cè)試瑟幕、運(yùn)維
jenkins-demo-devel
、jenkins-demo-test
留潦、jenkins-demo-oper
回到
系統(tǒng)管理
頁(yè)面只盹,Manage and Assign Roles
>Assign Roles
給三個(gè)用戶分配全局角色
- 給三個(gè)用戶分配工程角色
點(diǎn)擊保存完成配置
-
測(cè)試賬號(hào)登陸, 只有構(gòu)建與查看權(quán)限,并且看不到生產(chǎn)環(huán)境的工程
-
開(kāi)發(fā)賬號(hào)登陸, 除了生產(chǎn)環(huán)境的工程看不到, 其它環(huán)境的工程都可以查看,刪除,修改和構(gòu)建
-
運(yùn)維賬號(hào)擁有所有環(huán)境的權(quán)限
- 如果項(xiàng)目龐大, 我們可以通過(guò)視圖限制, 點(diǎn)擊
My Views
- >新建視圖
My Views 里面創(chuàng)建的視圖只有當(dāng)前賬戶可以看得到, 而首頁(yè)里新建的視圖所有賬戶都可以看到, 一但項(xiàng)目多起來(lái)將毫無(wú)意義, 非常的混亂
我的視圖
: 只能顯示當(dāng)前賬號(hào)有權(quán)限的工程
簡(jiǎn)單視圖
: 可以選擇當(dāng)前賬號(hào)顯示的工程
-
選擇簡(jiǎn)單視圖, 創(chuàng)建一個(gè)開(kāi)發(fā)環(huán)境的視圖
-
創(chuàng)建完成后只能看到剛才選擇的工程, 還有個(gè)好處就是可以收藏當(dāng)前視圖的URL地址, 下次可以直接進(jìn)來(lái), 非常方便
- 如果勾選錯(cuò)了兔院, 導(dǎo)致admin也無(wú)法登陸殖卑, 可以嘗試下面的方法
- 修改全局角色admin角色, 恢復(fù)到原始狀態(tài)
- 修改${jenkins_home}/config.xml坊萝, 如果用yum 安裝直接
vim /var/lib/jenkins/config.xml
- 找到
<roleMap type="globalRoles">
節(jié)點(diǎn)孵稽, 把<role name="admin" pattern=".*">
這個(gè)節(jié)點(diǎn)全部替換成初始的admin角色權(quán)限
- 修改${jenkins_home}/config.xml坊萝, 如果用yum 安裝直接
- 修改全局角色admin角色, 恢復(fù)到原始狀態(tài)
- 這是admin角色初始的權(quán)限
<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>