文章已經遷移到我的個人博客,里面還有更多內容。
3. Jenkins使用 -- 用戶設置
建立用戶
主頁點擊系統管理 -> 管理用戶,可見現在只有一個管理員用戶
點擊右側新建用戶
輸入所需信息
現在,我們有兩個用戶
退出admin賬號,登錄user1賬號,確定沒有問題,再次退出,返回admin賬號
分配用戶角色
新建的用戶有和管理員一樣的權限,不安全,我們需要限制其權限。
我們使用角色來管理權限。簡單來說就是管理員創建若干角色,比如開發者,測試者等,每個角色都有對應的一些權限。我們還有若干用戶,比如用戶1,用戶2等,其中用戶1做開發,用戶2做測試。那么如果我們設定用戶1的角色是開發者,用戶2的角色是測試者,就可以很快給各個用戶分開好權限。下次再有更多用戶,我們只要給他們設定相應的角色即可,而不用對每個用戶單獨設定,這樣便可以簡化我們的工作。
安裝所需插件
進入系統管理 -> 插件管理,點擊可選插件,然后在過濾中輸入role
選中出現的插件,然后點擊直接安裝
然后選擇安裝完成后重啟****Jenkins即可
設置安全策略
點擊系統管理-> Configure Global Security, 選中圖示的Role-Based Strategy,然后保存設置。
退出admin賬號,登錄user1賬號,發現出現下圖錯誤,說明配置生效。這個錯誤說明未經admin授權角色,其他用戶沒有任何權限。
創建角色
為了給其他用戶賦予合適的工作權限,我們需要首先創建角色。
重新登錄admin
點擊系統管理-> Configure Global Security-> Manage and Assign Roles,進入如下界面。
進入Manage Roles,我們看到三中角色分類,Global roles(全局角色),Project roles(項目角色),Slave roles(奴隸角色)。項目角色與全局角色的區別就是,項目角色只能管理項目,沒有管理jenkins的權限配置。
- Global roles(全局角色):管理員等高級用戶可以創建基于全局的角色
- Project roles(項目角色): 針對某個或者某些項目的角色
- Slave roles(奴隸角色):節點相關的權限
我們可以發現,admin角色擁有所有權限。
添加一個全局角色
下面輸入框中,添加一個全局角色,比如叫做employee
然后為其設置Overrall(全局的)Read和View的所有權限,如下圖
添加一個項目角色
Role to add中,添加"developer",Pattern中,添加"Dev.*"
分配給此類項目job所有權限
類似方法,可以添加一個名為"tester"的項目角色,Pattern設置為"Test.*",并且賦予所有權限。
Pattern這個設置可能會有點迷惑。這里填的是一個正則表達式,目的是匹配job全名(如果使用了Cloudbees Folders Plugin,那么全名還包括為文件夾),具體可以參考官方文檔。
全局角色與項目角色
全局角色設定覆蓋項目角色的任何設定。那么,如果全局設定某個角色可以job-read(如下圖設置),那么不管項目角色怎么設定的,這個角色都可以讀取任何項目。
基于此,推薦多數(甚至所有)全局的Job,Run,SCM都不要鉤選。
分配角色
回到主頁,點擊系統管理-> Configure Global Security-> Manage and Assign Roles,進入如下界面。
點擊Assign Roles,首先,在Global roles部分,User/group to add中輸入我們剛才建立的用戶名user1,點擊add添加,然后在出現的對應的全局角色位置勾選employee。
類似的,在Project roles位置為user1賬號添加developer角色。
這樣,我們便添加了全局和項目角色,而且分配了對應用戶。
slave role暫時沒有研究,以后用到了再補充
驗證新建的角色
首先,我們需要有對應的項目來驗證。回到主頁,點擊新建
然后出現下圖界面,Enter an item name中輸入DevProject1,然后選擇構建一個自由風格的軟件項目,最后點擊OK保存。
現在可以自己試試登錄我們的user1用戶,看看可不可以看到這個項目了。
有興趣的話,自己多建立幾個用戶和項目,體驗一下這些設置。