code

2014年10月3日 星期五

有效的 Jenkins 使用者管理 - 使用 Role Strategy Plugin

一座商業化運轉的服務,肯定同時會有三教九流的人們在上面作業(或游盪)。為這些人的行為做分組,通常會稱為Role。常見的Role像是Admin,Manager,Developer等等。而Jenkins本身內建的授權無法進行類似Role設定,比較像是個人化的設定,每個專案有獨立的權限設定(媽阿,設定到掉眼淚)。本篇的目標,教你建構真正具彈性,具多個Role的授權管理方式。

本篇需外掛需求清單

又是無敵的外掛!Role Strategy Plugin提供了簡易的設定用於建立Role,與指定人員。還記得前幾篇時,建議大家專案一定要採用樣式的模式建立嗎?這個外掛對專案的授權也是採用相同的模式喔!

目標情境

Admin:abola
神族,系統管理員,不用解釋

Alpha-Team Manager:alpha
Alpha團隊的管理者,擁有Alpha相關專案的完整管理權限
Alpha-Team Developer:alpha
Alpha團隊開發者,可建立、檢視、設定、建置Alpha專案,但無法刪除記錄

Beta-Team Manager:beta
Beta-Team Developer:beta, bala
對照組,目標為Beta專案

第一步:開啟安全性設定


管理Jenkins >> 設定全域安全性


在授權中選擇Role-Based Strategy,特別注意將允許使用者註冊勾選

第二步:建立使用者帳號



再回到管理Jenkins畫面中,多了一個管理使用者
建立使用者帳號,特別特別注意使用者名稱請用全小寫

第三步:建立Role

進入  管理Jenkins >> Manage and Assign Roles 
Manage Role 是管理Role內容 / Assign Role 是指定使用者的Role,先進入Manage Roles
 先在Global roles中,新增兩個Role 
Anyone 只有整體的Read權限
Member 除了有整體Read外,還需要有作業的Create權限




依照情境建立了兩個對照組的管理員與開發者的權限,主要差別在刪除專案的內容
Pattern 指的就是專案的名稱樣式,設定中的(?i)代表呼略大小寫的分別

第四步:指定人員Role

abola: 是管理員ㄟ
alpha: 全域設定為Member, 是 Role: Alpha Team Manager
beta: 同alpha, 管理Beta Team

第五步:檢驗設定 


先以管理員檢視,目前有五個專案預計的結果要符合圖示
Alpha 登入,只有兩個符合專案,結果正確!
Beta登入,也只有看到兩個等合專案,沒有出現小寫的beta專案,正確!


到目前為止,Role的設定已經完成了,若將來有新的成員要加入或移出,都只要回到第四步,Assign Roles 中增減即可,大大降低了人員管理的難度,新建的專案,只要符合Role的樣式設定,也不用重新設定授權了;維運的作業就是要一次到位,無怨無悔阿。

沒有留言:

張貼留言