1. 程式人生 > >Jenkins 配置基於角色的項目權限管理

Jenkins 配置基於角色的項目權限管理

管理 是個 img 但是 51cto 腳本 and 有時 src

一、前言

Jenkins是個好東西,開發運維測試的老江湖應該都聽過,在此我就不再多做介紹jenkins是個什麽東西了。

jenkins自身的權限管理,無法實現用戶指定顯示視圖或者視圖中指定的jobs,之前分配的jenkins帳號是擁有所有權限的,因為擔心故意或者誤刪job的情況。 我們使用jenkins自身的權限控制,而實現的效果用戶只能構建,不能查看修改配置和刪除job。雖然避免了故意或者失誤刪除job的情況,但是有時候開發需要修改配置,比如說更改構建的分支,或者想查看構建的參數,腳本就需要叫運維協助。對開發來說比較麻煩,對運維也很苦惱。

1、解決方法

為jenkins安裝角色策略插件,通過配置角色策略可以解決上面問題。

  1. 每個項目分配兩個賬號,一個賬號可以查看job配置,修改配置,構建新的權限,不能刪除,不能創建job,另一一個賬號只有構建權限。
  2. 不同項目組賬號登錄之後,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 配置基於角色的項目權限管理