Jenkins 配置基於角色的項目權限管理
Jenkins是個好東西,開發運維測試的老江湖應該都聽過,在此我就不再多做介紹jenkins是個什麽東西了。
jenkins自身的權限管理,無法實現用戶指定顯示視圖或者視圖中指定的jobs,之前分配的jenkins帳號是擁有所有權限的,因為擔心故意或者誤刪job的情況。 我們使用jenkins自身的權限控制,而實現的效果用戶只能構建,不能查看修改配置和刪除job。雖然避免了故意或者失誤刪除job的情況,但是有時候開發需要修改配置,比如說更改構建的分支,或者想查看構建的參數,腳本就需要叫運維協助。對開發來說比較麻煩,對運維也很苦惱。
1、解決方法
為jenkins安裝角色策略插件,通過配置角色策略可以解決上面問題。
- 每個項目分配兩個賬號,一個賬號可以查看job配置,修改配置,構建新的權限,不能刪除,不能創建job,另一一個賬號只有構建權限。
- 不同項目組賬號登錄之後,jenkins視圖只顯示自己項目組的job。
2、規劃
我們假設我們有兩個項目組,分別是b和q,每個項目組兩個賬號,分別是 btest,badmin,qtest,qadmin。
項目 | 用戶 | 權限 | 視圖 | 角色 |
---|---|---|---|---|
b | badmin | 修改,查看,構建等 | b | badmin |
b | btest | 只構建 | b | buser |
q | qadmin | 修改,查看,構建等 | q | qadmin |
q | qtest | 只構建 | q | quser |
二、配置
1、安裝插件
系統管理--->管理插件。
2、全局安全配置
系統管理--->全局安全配置。
3、創建用戶
系統管理--->管理用戶
4、創建角色
系統管理--->Manage and Assign Roles
1、創建一個Global roles
我們先創建一個全局角色user,賦予全局標簽下面的Read權限。
2、創建規劃項目的角色
分別創建兩個項目的角色,按照規劃的分配權限,Pattern
用於給項目匹配 job,使用正則表達式。
5、給用戶分配角色
系統管理--->Manage and Assign Roles--->Assign Roles
6、創建項目視圖
我這裏只展示創建其中一個視圖,另一個方式一樣。
三、登錄驗證
1、創建 job
因為創建的賬號都沒有賦予創建job的權限,所以我們先使用最高的管理賬戶創建幾個job,具體如下:
2、項目隔離驗證
我們分別登錄 btest 和 qtest 這兩個賬號,分別查看一下各自賬號下面可以查看到的 job。
btest
qtest
我們可以看到,隔離成功,不同的項目值可以看到各自的 job。
3、權限驗證
我們分別登錄 badmin 和 btest ,查看其權限。
badmin
btest
我們可以看到,各自看到的權限就是我們在角色裏面賦予的權限,沒有問題。
Jenkins 配置基於角色的項目權限管理