日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jenkins配置基于角色的项目权限管理--转

發(fā)布時(shí)間:2025/4/5 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins配置基于角色的项目权限管理--转 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文將介紹如何配置jenkins,使其可以支持基于角色的項(xiàng)目權(quán)限管理。

由于jenkins默認(rèn)的權(quán)限管理體系不支持用戶組或角色的配置,因此需要安裝第三發(fā)插件來支持角色的配置,本文將使用Role Strategy Plugin,介紹頁面:https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

一、配置插件

安裝插件后,進(jìn)入系統(tǒng)設(shè)置頁面,配置如下:

官網(wǎng)上安全域設(shè)置為Servlet容器代理,實(shí)際操作發(fā)現(xiàn)Jenkins專有用戶數(shù)據(jù)庫(kù)也是可以的。

二、配置權(quán)限

在系統(tǒng)管理頁面點(diǎn)擊Manage and Assign Roles進(jìn)入角色管理頁面:?

1、管理角色(Manage Roles

選擇該項(xiàng)可以創(chuàng)建全局角色、項(xiàng)目角色,并可以為角色分配權(quán)限。

如上圖,分別創(chuàng)建了adminanonymous兩個(gè)全局角色,Online Programtest兩個(gè)項(xiàng)目角色。

項(xiàng)目角色與全局角色的區(qū)別就是,項(xiàng)目角色只能管理項(xiàng)目,沒有管理jenkins的權(quán)限配置。

添加項(xiàng)目角色時(shí),需要制定匹配項(xiàng)目的模式,如上圖中的Pattern,官方文檔介紹該選項(xiàng)支持正則表達(dá)式,如“Roger-.”表示所有以Roger-開頭的項(xiàng)目,“(?i)roger-.*”表示以roger-開頭的項(xiàng)目并且不區(qū)分大小寫,如以ABC開頭的項(xiàng)目可以配置為“ABC|ABC.*”,也可以使用“abc|bcd|efg”直接匹配多個(gè)項(xiàng)目。

2、創(chuàng)建用戶

在分配角色之前需要先創(chuàng)建用戶。

在系統(tǒng)管理頁面,點(diǎn)擊管理用戶:

點(diǎn)擊新建使用者可以創(chuàng)建新用戶,如果之前有項(xiàng)目與scm版本管理系統(tǒng)(如svn、git等)連接并獲取源碼構(gòu)建過,jenkins會(huì)從svn中讀取到一些用戶信息,可以在查看用戶菜單中看到這些用戶:

點(diǎn)擊用戶id或名稱都可以修改用戶信息。

3、分配角色(Assign Roles

選擇Assign Roles可以為用戶分配所屬角色,可以分配全局角色和項(xiàng)目角色。

如上圖,將不同的用戶分別分配給不同的角色,這樣用戶就可以具有角色所擁有的權(quán)限。

三、深入了解

該插件從201110月發(fā)布1.1.2版本后就不再維護(hù)了,因此會(huì)有一些小問題,但不影響使用,比如在分配角色后點(diǎn)擊保存按鈕時(shí)有可能會(huì)發(fā)生異常,瀏覽器點(diǎn)擊后退按鈕后重新提交就可以操作成功。

另外如果配置失敗導(dǎo)致不能登錄,可以通過修改配置文件恢復(fù)初始設(shè)置。

首先了解一下配置文件。

進(jìn)入jenkins安裝目錄,用戶配置信息和角色配置信息都以配置文件的形式存儲(chǔ)。

上圖中users目錄存放了各個(gè)用戶的配置信息,每個(gè)用戶都會(huì)創(chuàng)建與用戶名相同的文件夾,文件夾中包含config.xml文件,配置示例如下:

<?xml version='1.0' encoding='UTF-8'?><user><fullName>admin</fullName><properties><jenkins.security.ApiTokenProperty><apiToken>EfowsOP9H5arYxMmuFrbPjjITgu/fjtvHib5okFJ9DmPTu/088cvHxlE9RHwVv+S</apiToken></jenkins.security.ApiTokenProperty><hudson.model.MyViewsProperty><views><hudson.model.AllView><owner class="hudson.model.MyViewsProperty" reference="http://www.cnblogs.com/.."/><name>All</name><filterExecutors>false</filterExecutors><filterQueue>false</filterQueue><properties class="hudson.model.View$PropertyList"/></hudson.model.AllView></views></hudson.model.MyViewsProperty><hudson.search.UserSearchProperty><insensitiveSearch>false</insensitiveSearch></hudson.search.UserSearchProperty><hudson.security.HudsonPrivateSecurityRealm_-Details><passwordHash>uAEYii:02e0cd0d78abf90e42b28e7d3d4fe64776ae8fa9500e379f2598cc65e1b0fb70</passwordHash></hudson.security.HudsonPrivateSecurityRealm_-Details><hudson.tasks.Mailer_-UserProperty><emailAddress>gaoliang@esrichina.com.cn</emailAddress></hudson.tasks.Mailer_-UserProperty></properties></user>

角色配置在$Jenkins_home/config.xml文件中,示例如下:

<useSecurity>true</useSecurity><authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy"><roleMap type="globalRoles"><role name="admin" pattern=".*"><permissions><permission>hudson.model.Hudson.Read</permission><permission>hudson.model.Hudson.Administer</permission><permission>hudson.model.View.Delete</permission><permission>hudson.model.Computer.Create</permission><permission>hudson.model.Computer.Delete</permission><permission>hudson.model.Hudson.RunScripts</permission><permission>hudson.model.View.Read</permission><permission>hudson.model.Run.Update</permission><permission>hudson.model.Item.Workspace</permission><permission>hudson.model.Computer.Connect</permission><permission>hudson.model.Computer.Configure</permission><permission>hudson.model.Item.Cancel</permission><permission>hudson.model.Item.Configure</permission><permission>hudson.model.Item.Discover</permission><permission>hudson.model.Item.Create</permission><permission>hudson.model.View.Configure</permission><permission>hudson.model.Computer.Disconnect</permission><permission>hudson.model.Item.Delete</permission><permission>hudson.model.Item.Read</permission><permission>hudson.model.Item.Build</permission><permission>hudson.model.Run.Delete</permission><permission>hudson.model.View.Create</permission><permission>hudson.scm.SCM.Tag</permission></permissions><assignedSIDs><sid>admin</sid></assignedSIDs></role><role name="anonymous" pattern=".*"><permissions><permission>hudson.model.Hudson.Read</permission></permissions><assignedSIDs><sid>anonymous</sid></assignedSIDs></role></roleMap><roleMap type="projectRoles"><role name="Online Program" pattern="GeoQPortal|GeoQUserPortal"><permissions><permission>hudson.model.Item.Read</permission><permission>hudson.model.Item.Build</permission><permission>hudson.model.Run.Delete</permission><permission>hudson.model.Item.Workspace</permission><permission>hudson.model.Run.Update</permission><permission>hudson.scm.SCM.Tag</permission><permission>hudson.model.Item.Cancel</permission><permission>hudson.model.Item.Discover</permission></permissions><assignedSIDs><sid>caox</sid><sid>wangwh</sid><sid>yuh</sid><sid>chenjj</sid><sid>lim</sid><sid>zhangy</sid></assignedSIDs></role><role name="test" pattern="Compress"><permissions><permission>hudson.model.Item.Delete</permission><permission>hudson.model.Item.Read</permission><permission>hudson.model.Item.Build</permission><permission>hudson.model.Run.Delete</permission><permission>hudson.model.Item.Workspace</permission><permission>hudson.model.Run.Update</permission><permission>hudson.scm.SCM.Tag</permission><permission>hudson.model.Item.Cancel</permission><permission>hudson.model.Item.Configure</permission><permission>hudson.model.Item.Discover</permission></permissions><assignedSIDs><sid>wangwh</sid></assignedSIDs></role></roleMap></authorizationStrategy><securityRealm class="hudson.security.HudsonPrivateSecurityRealm"><disableSignup>false</disableSignup><enableCaptcha>false</enableCaptcha></securityRealm>

如果發(fā)生用戶不能登錄的情況,可以嘗試以下幾種方法解決

1、方法1

  • 刪除用戶相關(guān)的目錄
  • 修改$Jenkins_home/config.xml文件:<useSecurity>false</useSecurity>
  • 刪除authorizationStrategy、securityRealm節(jié)點(diǎn)
  • 重新啟動(dòng)Jenkins

使用該方法將刪除Jenkins的權(quán)限管理,恢復(fù)成為初始狀態(tài)。

2、方法2

  • 修改$Jenkins_home/config.xml文件,修改授權(quán)方式為系統(tǒng)自帶的安全矩陣方式

authorizationStrategy節(jié)點(diǎn)class屬性修改為hudson.security.GlobalMatrixAuthorizationStrategy

  • 配置示例如下,該示例是分配給admin用戶所有權(quán)限
  • <useSecurity>true</useSecurity><authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy"><permission>hudson.model.Computer.Configure:admin</permission><permission>hudson.model.Computer.Connect:admin</permission><permission>hudson.model.Computer.Create:admin</permission><permission>hudson.model.Computer.Delete:admin</permission><permission>hudson.model.Computer.Disconnect:admin</permission><permission>hudson.model.Hudson.Administer:admin</permission><permission>hudson.model.Hudson.Read:admin</permission><permission>hudson.model.Hudson.Read:anonymous</permission><permission>hudson.model.Hudson.RunScripts:admin</permission><permission>hudson.model.Item.Build:admin</permission><permission>hudson.model.Item.Cancel:admin</permission><permission>hudson.model.Item.Configure:admin</permission><permission>hudson.model.Item.Create:admin</permission><permission>hudson.model.Item.Delete:admin</permission><permission>hudson.model.Item.Discover:admin</permission><permission>hudson.model.Item.Read:admin</permission><permission>hudson.model.Item.Workspace:admin</permission><permission>hudson.model.Run.Delete:admin</permission><permission>hudson.model.Run.Update:admin</permission><permission>hudson.model.View.Configure:admin</permission><permission>hudson.model.View.Create:admin</permission><permission>hudson.model.View.Delete:admin</permission><permission>hudson.model.View.Read:admin</permission><permission>hudson.scm.SCM.Tag:admin</permission></authorizationStrategy><securityRealm class="hudson.security.HudsonPrivateSecurityRealm"><disableSignup>false</disableSignup><enableCaptcha>false</enableCaptcha></securityRealm>
    • 重新啟動(dòng)Jenkins

    使用該方法Jenkins將恢復(fù)為安全矩陣方式授權(quán)。

參考文獻(xiàn):

http://www.cnblogs.com/gao241/archive/2013/03/20/2971416.html

https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

http://blog.csdn.net/jmyue/article/details/9763021

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/3701972.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Jenkins配置基于角色的项目权限管理--转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。